ローカルホストを使用してステージング環境でクエリの結果を取得すると、奇妙なイベントが発生します
だから私は 8 つのテーブルを接続しています。簡単にするために、クエリは次のようになります。
SELECT
*
FROM
tsales, stores, vma_users, tracks, albums, fa_country, exchange_rates, outlets
WHERE tsales.type = 'T'
AND stores.outlet_id = exchange_rates.outlet_id
AND stores.outlet_id = outlets.id
AND tsales.store_id = exchange_rates.outlet_id
AND tsales.sale_year = exchange_rates.year
AND tsales.sale_month = exchange_rates.month
AND tsales.currency = exchange_rates.currency
AND tsales.track_id = tracks.id
AND tracks.album_id = albums.id
AND tsales.country = fa_country.iso
AND tsales.account_id = vma_users.id
AND tsales.account_id = 2129
AND tsales.sale_year = 2013
AND tsales.sale_month = 3
ORDER BY tsales.id
(クエリについて心配する必要はありません。これの左結合バージョンもあります)
ステージング環境でこのクエリを実行するたびに、たとえば 26k 行のような結果を取得できます。一方、ローカルホストでこれを SQL phpmyadmin で実行すると、何も起こっていないようで、後で結果を取得することさえできません。このようなものが表示されます
Fatal error: Maximum execution time of 30 seconds exceeded in C:\wamp\apps\phpmyadmin3.4.10.1\libraries\session.inc.php on line 92
私のローカルホストとステージングのデータと構造は同じです。更新しました。
何が起こっているのか教えてください。これが大きなレコードで発生することは知っていますが、26k 行しかないと予想しているので問題ありません。
EXPLAIN を使用してクエリを実行します。
1 SIMPLE outlets ALL NULL NULL NULL NULL 46 Using temporary; Using filesort
1 SIMPLE stores ALL NULL NULL NULL NULL 55 Using where; Using join buffer
1 SIMPLE fa_country ALL NULL NULL NULL NULL 213 Using join buffer
1 SIMPLE exchange_rates ALL NULL NULL NULL NULL 1390 Using where; Using join buffer
1 SIMPLE vma_users ALL NULL NULL NULL NULL 3957 Using where; Using join buffer
1 SIMPLE albums ALL NULL NULL NULL NULL 78458 Using join buffer
1 SIMPLE tsales ALL NULL NULL NULL NULL 893483 Using where; Using join buffer
1 SIMPLE tracks eq_ref PRIMARY,album_id PRIMARY 4 valleyarm_digital.tsales.track_id 1 Using where