大企業が(一般的に)これにどのように取り組んでいるかについて質問したので:
彼らは通常、会社が使用するデータベースを生きて呼吸するdba(データベース管理者)を持っています。
つまり、テーブルを最適に設計する方法、クエリ/インデックス/ OS /サーバーのプロファイルと調整方法から、データベースに問題を引き起こす可能性のあるRAIDコントローラーのファームウェアリビジョンを知る方法まで、すべてを知っている人がいます。
自分が行ったチューニングの種類についてはあまり話しません。例:
- MyISAMまたはInnoDBテーブルを使用していますか?それらのパフォーマンス(そして少なくともそれらの機能)は、ワークロードごとに根本的に異なります。
- 実行するクエリに従って、テーブルに適切なインデックスが付けられていますか?
- すべてのクエリでEXPLAINを実行します。これにより、追加/削除できるキーを特定し、適切なキーが選択されているかどうかを確認し、クエリを比較できます(SQLを使用すると、同じことを実行する方法がたくさんあります)
- クエリキャッシュを調整しましたか?一部のワークロードでは、クエリキャッシュ(デフォルトはオン)によって大幅な速度低下が発生する可能性があります。
- ボックスにはどのくらいのメモリがあり、mysqlはこれを利用するように調整されていますか?
- データベース向けのファイルシステムとRAIDセットアップを使用していますか?
- 場合によっては、少し非正規化が必要になります。
- データベース製品が異なれば、特性も異なります。MySQLは、一部の世界では非常に高速で、他の世界では低速である可能性があります。