エンタープライズプロダクション 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ウェブサーバー環境を構築します

推薦する

HTML ページで JSON データを表示およびフォーマットする方法

JSONデータはHTMLページ上に表示されフォーマットされます1. 表示効果図説明:すべてのキー値は...

Linuxファイルコマンドの使用

1. コマンドの紹介ファイル コマンドは、ファイルの種類を識別するために使用されます。ファイル チェ...

JavaScript の onblur および onfocus イベントの詳細な説明

HTML ページでは、ボタンやテキスト ボックスなどの視覚要素にフォーカスを設定したり、フォーカスを...

Dockerは起動されていないコンテナの設定情報を変更します

私が初めてdockerを使用したときは、dockerfileやdocker-composeを使用して...

JavaScript の querySelector メソッドと getElementById メソッドの違いを分析する

目次1. 概要1.1 querySelector() と querySelectorAll() の使...

MySQL 5.6 zipパッケージのインストールチュートリアルの詳細

これまでは、拡張子が .msi のファイル、つまり、完全なインストールが使用されていました。しかし、...

after疑似要素を使用して中空の三角矢印とXアイコンを実装する例

フロントエンドのデザイン案では、「X」や「>」の形をした閉じるボタンや、他の 3 方向の白抜き...

Ubuntu での MySQL および MySQL Workbench のインストール チュートリアル

Ubuntu に jdk をインストールする: [リンク] UbuntuにEclipseをインストー...

Windows で MySQL データベースを別のディスクに移動する

序文今日、MySQL をインストールしたところ、データベース ストレージがデフォルトで C ドライブ...

Javascriptでシングルトンパターンを実装する方法

目次概要コードの実装シングルトンパターンの簡易版改良版プロキシバージョンシングルトンモード遅延シング...

長いデータを HTML で表示するときに処理する方法

HTML で長いデータを表示する場合、マウスをその上に移動するとデータを切り捨てて完全なデータを表示...

JavaScriptはボタンをクリックして4桁のランダムな検証コードを生成します

この記事の例では、ボタンをクリックすることで4桁のランダムな検証コードを生成するjsの具体的なコード...

MySQL が InnoDB テーブルが独立したテーブルスペースか共有テーブルスペースかを判断する方法の詳細な説明

序文InnoDB はデータをテーブルスペースに保存します。デフォルト設定では、初期サイズが 10 M...

CSS で子 div の高さを親コンテナの残りのスペースに合わせる方法

1. フローティング方式を使用する効果画像: コードは次のとおりです: (.content の高さは...

React+Antdはテーブルの追加、削除、変更の例を実装します

目次テーブル/index.jsテーブル/モデル/index.jsテーブル/モデル/モジュール/bas...