MySQL がどのように最適化されるかを学ぶ

jacklove
リリース: 2018-06-14 15:38:17
オリジナル
1521 人が閲覧しました

MySQL の最適化

  • 1. インデックス、SQL ステートメント、分析を最適化する2. テーブルを設計するときは、

  • データベース設計パラダイム
  • に従ってください。3. ビジネス アーキテクチャをキャッシュ、静的、分散することもできます。

  • Xunsearch
  • ESまたはクラウド サーバー上のインデックスを使用します。5. それでも効率が十分ではない場合は、マスター/スレーブ方式を使用してデータの読み取りと書き込みを分離できます。

    6. memcached キャッシュを追加して、頻繁にアクセスされるデータを memcached に保存できます。キャッシュ サーバー内部では、ディスク I/O を節約できます。
  • 7. ハードウェア レベルで、より優れたハード ドライブ (ソリッド ステート ドライブ) を使用したり、いくつかのディスク アレイ テクノロジを使用したりすることもできます。 、raid1、raid5)
  • - Raid0: 最も単純 (ハードウェア 2 個で 100G+100G=200G 追加)
  • - Raid1: ミラーボリューム。同じデータを 2 つのコピーにコピーします。 A/B からすぐに読み取ることができるため、ハードディスクが破損してもデータが失われることはありません。 - Raid5: 3 台のハードドライブ。1 台が壊れても、他の 2 台は引き続き動作します。

  • 8. それでも遅い場合は、まだテーブルを分割しないでください。MySQL の組み込みテーブル パーティショニング テクノロジを使用して、データを複数のファイルに分割することができます。これにより、読み取り時のディスクの効率が向上します。
  • 9. テーブルを垂直に分割し、頻繁に読み込まれないデータを別のテーブルに配置することができます (ディスク I/O を節約)


    10. データ量が非常に大きいため、非常に困難になります。データベース ミドルウェアを使用して、データをデータベース、テーブル、マシンに分割できます。 (原則: データルーティング);
  • 11. さらに、頻繁にアクセスする必要がある一部のデータを保存するために、NoSQL などのいくつかの高速ストレージ方法を使用することもできます (データベースを取り出した後、他のデータを保存することもできます)。 NoSQL から取得されます );
  • オプション、パラメータの最適化、および関連するヒントがいくつかあります
  • 指定時間を超える SQL ステートメント クエリ、MySQL ステートメント クエリのパフォーマンスを分析する方法では、実行計画を出力する説明だけでなく、指定時間を超えるステートメントを MySQL に記録することもできます。
  • Xunsearch: 一般の開発者が既存の膨大なデータ用に独自の全文検索エンジンを迅速かつ簡単に構築できるように設計された、無料のオープンソースのプロフェッショナルな全文検索ソリューションです。全文検索は、サーバー上の検索負荷を軽減し、検索速度とユーザー エクスペリエンスを大幅に向上させるのに役立ちます。

  • ElasticSearch: Lucene ベースの検索サーバー。 RESTful Web インターフェイスに基づいた分散マルチユーザー対応の全文検索エンジンを提供します。
  • テーブルエンジン

  • 利点

欠点

ISAM

読み取り速度が速く、多くのメモリとストレージリソースを占有しません トランザクションをサポートしていないため、欠点はありません-耐性がある; ハードディスクがクラッシュした場合、データ ファイルは復元できません (通常のバックアップ) 、トランザクションはサポートしません column の情報を細分化することはできません[column unique] 行 は一意である必要があります。区別された (主キーは各行に構築されます) [行の一意]
MYISAM ISAM 拡張フォーマットとデフォルトのデータ エンジンは、MYISAM では利用できない多数のインデックスとフィールド管理機能を提供します。テーブルロックを使用します
INNODBおよびBERKLEY (BDB)をサポートしません トランザクションをサポートし、外部キーをサポートします データの読み取りが遅くなります
HEAP は一時テーブルを許可しますメモリ内にのみ存在するため、ISAMよりも優れています。 MYISAMよりも高速です シャットダウン前にデータを保存しないと、すべてのデータが失われます(シャットダウン後にテーブルが削除されます)。データを選択して操作するために選択式が必要な場合は非常に困難です。つまり、
いいえ、第2正規形(2NF) 第1正規形に基づいて、データテーブルの各インスタンスまたは
第 3 正規形 (3NF ) 第 2 正規形に基づき、既に他のテーブルにある非主キー列を含まないデータベース
  • 拡張:
    携帯電話がユーザーログインを実現するためのセッションと Cookie をサポートしていない場合はどうすればよいですか?
    1. プロトコルで Restful を使用します。
    2. トークンを変更します (WeChat 開発で使用される appid と同様)。この記事では、MySQL を最適化する方法について説明します。詳しくは、php 中国語 Web サイトをご覧ください。

    関連する推奨事項:

    シンプルなPHP + MySQLページングクラス

    HTMLをExcelに変換し、印刷およびダウンロード機能を実現

    phpのCURLを介してファイルをアップロード

以上がMySQL がどのように最適化されるかを学ぶの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!