2つのテーブル - 情報とコメントがあります。 infoには27万行、コメントには100行しかありません。LIMITコマンドでMysqlのテーブルサイズがランタイムに影響するのはなぜですか?
私は、データベースからデータを選択し、それをjson形式にエンコードするPHPスクリプトを実行します。 PHPスクリプトでは、応答は最初の10行のみに制限され、Info.phpとComments.phpの両方のPHPファイルは名前を除いてまったく同じです。
なぜ最初の10行しか印刷しない場合、270,000行のテーブルが100個のローよりも読み込みに時間がかかるのはなぜですか? コメントに1秒かかり、情報に10秒かかります。
これは、非常に単純なPHPのクエリ・コードです:
Info.php:$query = "SELECT * FROM info ORDER BY id LIMIT 10;";
Comments.php:テストの目的については$query = "SELECT * FROM comments ORDER BY id LIMIT 10;";
、彼らの両方が同じ列と同じデータを持っています唯一の違いは行番号です。 Comments.php結果ながら
select from database time: 0.6090 seconds
time taken to decode JSON: 6.4736 seconds
:
Info.php:だから私はPHPとで時間をテストしたことが原因のMySQLのかもしれません
select from database time: 0.7309 seconds
time taken to decode JSON: 1.7178 seconds
おかげ
データベースクエリの前と後にタイマーを作成してから、jsonエンコーディングの前後にタイマーを作成します。これはデータベースかエンコーディングですか?各テーブルにはいくつの列がありますか? – Dale
データベースが責任があると思われる場合は、クエリの説明を行い、結果を投稿してください。 – e4c5
@Dale テスト目的では、両方とも同じ列と同じデータを持ちますが、唯一の違いは行番号です。データベース時間から 選択:だから私はPHPとInfo.php結果と回をテストしたJSONをデコードするために取ら0.6090秒 時間:Comments.php結果しばらく6.4736秒 を: データベース時間から選択します。デコードに取ら0.7309秒 時間をJSON:1.7178秒 – Yakirbu