0

約500万行を含む巨大なデータベーステーブルがあります。レコードを取得すると、サーバーの速度が低下する場合があります。何日にもわたってテーブルが大きくなっているので、どうすればテーブルを管理できますか。

たとえば、テーブル全体を毎年多くの小さなテーブルに分割するなど、アーカイブ手法を毎年作成することを考えていましたが、コーディングに多くの変更が必要でした。データベースからのクエリの完全な構造を変更する必要があります。したがって、おそらくプロジェクト内のほとんどの場所で変更があります。

データベーステーブルからのレコードのフェッチ時間を短縮するために他に何ができますか?コードの多くの変更を回避するために採用できる他の手法はありますか?

前もって感謝します

4

2 に答える 2

2

MySQLで使用すると、テーブルを水平方向に簡単にPARITIONできます。PARITION BY RANGE

また、テーブルに多数の列がある場合は、垂直分割方法によってそのテーブルを2つ以上のテーブルに分割できます。

また、適切なインデックスを追加します。できれば、テーブルにクラスター化またはカバーするインデックスを追加し、 EXPLAINを使用してクエリのパフォーマンスをテストします。

于 2012-08-03T10:46:57.490 に答える
1

その場合、テーブルのパーティション分割が役立つ可能性があります。以下は情報を提供します:

http://dev.mysql.com/doc/refman/5.1/en/partitioning-overview.html

https://dba.stackexchange.com/questions/19313/partitioning-a-table-will-boost-the-performance

于 2012-08-03T10:45:11.013 に答える