0

大きな (6,000 万以上のレコード) テーブルがあります。このテーブルには主キー (id、auto_increment、インデックス id) があります

このテーブルからレコードを選択するレポートがあります。このレポート (PHP で作成) をブラウズしてナビゲートするために、ページネーション スクリプトを使用しています。

このスクリプトは、SELECT COUNT( ) を使用して、このテーブル内のレコードの合計数を取得します。SELECT COUNT( ) は非常に遅いです。

質問: table_name = my_large_table_name and column_name = id and(or) index_name is the index name of my auto_incremented id and (or) index_name is the index name of the table_name = my_large_table_name and column_name = id and(or) index_name is the index name of the table_name = my_large_table_name and (or) index_name is the index name of the table_name = my_large_table_name and (or) index_name is the index name of the table_name = my_large_table_name and (or) index_name is the index name for my_large_table_name and (or) index_name is the index name for my_large_table_name and (or) index_name is the index name of my_large_table_name and (or) index_name is the index name for my_large_table_name and and (or) index_name is the index name of my auto_incremented id and then use the results as the total amount of rows in my pageation script. ?

アップデート:

TABLE_ROWSまたは、 のテーブルのフィールドをクエリして、テーブルTABLESinformation_schemaの行の合計量を取得できますか? 結果は正確ですか?

InnoDB エンジンを使用したテーブル。

4

1 に答える 1

1

行数がキャッシュされていないため、計算する必要がある innodb テーブルのように聞こえます。

テーブルの統計も正確ではない可能性があります。

InnoDB などの他のストレージ エンジンの場合、この値は概算値であり、実際の値とは 40 ~ 50% ほど異なる場合があります。 http://dev.mysql.com/doc/refman/5.1/en/show-table-status.html

見たことがありますSQL_CALC_FOUND_ROWSか? http://dev.mysql.com/doc/refman/5.0/en/information-functions.html

于 2012-10-04T22:29:02.437 に答える