sql >> データベース >  >> RDS >> Mysql

データベースインデックスはいつ再構築する必要がありますか?

    インデックスを「再構築」する必要はありません。それらは常に最新の状態に保たれます。たぶん彼はテーブルの再構築について言及していたのでしょう。使用パターンとスキーマによっては、InnoDBで断片化されたページを取得できますが、MyISAMでもそう思います。テーブルを再構築すると、ディスク上のデータの断片化を取り除くことでパフォーマンスを向上させることができます。 MyISAMテーブルは定期的に使用していませんが、特定の使用パターンで「OPTIMIZETABLE」を実行することをお勧めします。 OPTIMIZETABLE のMySQLドキュメントを参照してください。 MyISAMとInnoDBの両方に関するいくつかの良い情報があります。

    私はMyISAMの複雑さに精通していませんが、InnoDBを使用すると、統計が古くなる可能性があるのは事実です。データベースは、特定のインデックスのデータがどのように分散されているかに関する推定統計を保持し、それらが古くなる可能性がありますが、MySQL / InnoDBには、統計を最新に保つための機能が組み込まれています。通常、それについて心配する必要はありません。

    したがって、InnoDBを使用している場合、答えはノーです。通常、インデックスのパフォーマンスを維持するために積極的に何もする必要はありません。 MyISAMについてはよくわかりませんが、これらのテーブルを定期的に最適化する必要があるのが一般的だと思います。



    1. FROM句で更新対象のテーブル'NAME'を指定することはできません

    2. PLS-00201識別子'PACKAGENAME.PROCEDURENAME'を宣言する必要があります

    3. アマゾンLinuxでのpipインストールmysqlclient

    4. MySQLのJSON_SET()とJSON_INSERT()とJSON_REPLACE():違いは何ですか?