エンタープライズプロダクション MySQL 最適化入門

エンタープライズプロダクション MySQL 最適化入門

Oracle、DB2、SQL Server などの他の大規模データベースと比較すると、MySQL には独自の欠点がありますが、これによって人気が下がることはありません。一般の個人ユーザーや中小企業にとって、MySQL が提供する機能は十分すぎるほどであり、また、MySQL はオープンソースソフトウェアであるため、総所有コストを大幅に削減できます。

企業は本番環境で MySQL をどのように最適化するのでしょうか?

参考回答:

a: ハードウェアの最適化:

1. 64ビットCPU、少なくとも4つのCPUを使用し、L2キャッシュが大きいほど良い
2. メモリは大きい必要があります。32〜64G では 1〜2 個のインスタンスを実行でき、96〜128G では 3〜4 個のインスタンスを実行できます。
3. 機械式ディスクには回転速度が15000以上のSASディスクを使用し、可能であればSSDを使用する
4. RAIDカードにRAID10を使用する
5. 複数のネットワークカード、ギガビット以上
6. データベースには仮想化を使用しないでください。スレーブハードウェアはマスターよりも優れている必要があります。

b: オペレーティングシステムの最適化

1. オペレーティングシステムとしてx86_64を選択し、xfsファイルシステムを使用してみます。
2. ディスクストレージパラメータを最適化する
3. カーネルパラメータを最適化する
4. ネットワーク等の最適化

c: MySQL アーキテクチャの最適化

1. メモリサイズに基づいて複数のインスタンスを実行するようにサーバーを構成する
2. マスタースレーブレプリケーションでは混合モードを使用します。データセンター間で同期しないようにしてください。データセンター間で同期する必要がある場合は、リモート書き込みとローカル読み取りを使用するようにしてください。
3. マスターとスレーブのレプリケーション間のデータの違いを定期的にチェックして修復する
4. ビジネス分割、検索機能は実行に MySQL データベースを使用しません。一部の高同時実行性と一般的なセキュリティが求められるビジネスでは、memcache、redis などの NoSQL を使用します。
5. ユーザーログインや製品クエリのために、memcacheなどのデータベースフロントエンドにキャッシュを追加する
6. 動的データを静的化し、ファイル全体を静的化し、ページフラグメントを静的化する
7. データベース クラスターの読み取り/書き込み分離、1 つのマスターと複数のスレーブ、dbproxy によるクラスターの読み取り/書き込み分離
8. 1 つのテーブルが 800 万を超える場合は、手動で (ログイン、製品、注文) をテーブルとデータベースに分割するなど、データベースとテーブルが分割されます。
9. データベースからバックアップを選択し、別々のテーブルとデータベースでデータベースのバックアップを実行します。

d: MySQLデータベースレベルの最適化

1. my.cnfパラメータを最適化する
2. 文字セット、文字列の長さ、短いインデックスの作成、複合インデックスの複数使用など、データベース テーブルの設計を最適化します。
3. SQL ステートメントを最適化し、遅いステートメントの数を減らします。

e: データベース管理プロセスとシステムの最適化

1. ヒューマンプロセス: 開発 -> コア運用・保守/DBA
2. テストプロセス: イントラネットIDCテストはオンラインで実行されます
3. クライアント管理、PHPMYADMIN

f: MySQL データベースのセキュリティ最適化

1. データベースは外部ネットワークの設定が禁止されています
2. データベース ファイルのアクセス許可を最適化します。
3. 許可されたユーザーの権限を制限し、専用のデータベースと専用ユーザーを使用するようにしてください。
4. 開発者の運用データベースに対する操作権限を制限する
5. SQL文のインジェクションを防ぐ

要約する

エンタープライズプロダクションの MySQL 最適化の紹介に関するこの記事はこれで終わりです。皆様のお役に立てれば幸いです。興味のある方は、Oracle ページング クエリ パフォーマンス最適化コードの詳細な説明、ORACLE SQL ステートメント最適化テクノロジの重要なポイントの分析、C/C++ コンパイラ最適化の紹介などを参照してください。ご質問がある場合は、いつでもメッセージを残していただければ、編集者がすぐに返信いたします。

以下もご興味があるかもしれません:
  • MySQL 最適化ツールについての簡単な説明 - 遅いクエリ
  • MySQL でテーブルを最適化するときに発生する「テーブルはすでに最新です」という問題の解決方法
  • MySQL データベースのパフォーマンス最適化のための 21 のベスト プラクティス

<<:  ubuntu16.04でNFSサービスを構築する方法

>>:  Ubuntu16.04はphp5.6ウェブサーバー環境を構築します

推薦する

MySQL での Truncate の使用法の詳細な説明

序文:テーブルをクリアしたいときは、truncate ステートメントをよく使用します。ほとんどの場合...

MySQL データ型の完全分析

データ型: 列に格納できるデータとそのデータが実際にどのように格納されるかを定義する基本ルール。デー...

Windows Server 2016 標準キー アクティベーション キー シリアル番号

Windows Server 2016 アクティベーション キーを皆さんと共有したいと思います。wi...

MySQLにおける(JOIN/ORDER BY)文のクエリ処理と最適化方法

EXPLAIN ステートメントは、MySQL クエリ ステートメント プロセスと EXPLAIN ス...

MySQLの文字セット設定を5分で理解しましょう

目次1. コンテンツの概要2. 文字セットと文字順序の概念と関係3. MySQL でサポートされてい...

Brotli圧縮アルゴリズムを有効にするNginxの実装プロセスの詳細な説明

序文Web アプリケーションでは、トラフィックを節約し、転送データのサイズを縮小し、転送効率を向上さ...

国内SNSのホームページを比較・分析して得た経験をみんなで共有(写真)

この記事では、ソーシャル ウェブサイトのホームページを比較分析することで洞察を得て、ソーシャル ウェ...

ウェブページの色特性の分類

色特性の分類あらゆる色は、赤、緑、青の三原色から構成されます。三原色の中で暖色なのは赤だけなので、作...

mysql 8.0.18 mgr のインストールと切り替え機能

1. システムインストールパッケージ yum -y インストール make gcc-c++ cmak...

MySql で SQL 実行プランをクエリするために explain を使用する方法

explain コマンドは、クエリ オプティマイザーがクエリの実行を決定した方法を確認する主な方法で...

HTML 縦列表示テキストを使用してテキストを縦列で表示します

コードをコピーコードは次のとおりです。 <span style='display:bl...

Dockerリポジトリの一般的なコマンドの詳細な説明

ログイン dockerログインdocker login コマンドを実行し、ユーザー名、パスワード、メ...

MySQL ストアド関数の詳細な紹介

目次1. ストアド関数を作成する2. ストアド関数の呼び出し3. 保存された関数を削除する4. スト...

js タグ構文の使用法の詳細

目次1. ラベルステートメントの紹介2. ラベルステートメントの使用序文:日常の開発では、プログラム...