結果が返されない限り、完璧に高速に実行されるSQLクエリに問題があります。
私は4つのテーブルを持っています:worlds(2アイテム)、players(約2000アイテム)、world_chunk(約16000アイテム)、world_block(約100万アイテム)
 SELECT bid,playername FROM worlds 
 JOIN world_chunks ON worlds.id = world_chunks.mainid 
 JOIN world_blocks ON world_chunks.cid = world_blocks.cid 
 JOIN players ON world_blocks.player = players.pid 
 WHERE worldname='world' AND x='-684' AND y='63' AND z='-2234' AND cx ='-43' AND cz='-140'
x、y、zはworld_blocksに保持され、cx、czはworld_chunksに保持され、worldnameはworldsに保持されます。すべてのインデックスが設定され、空の結果を除くすべてに対して非常に高速です。
とにかく私は空の結果をスピードアップすることができますか?
皆さんの助けに感謝します。
編集:これがdb構造です:http: //pastebin.com/rxQQ5mzp
そのMySQLInnoDB
EXPLAIN on Emtpy Query:
1   SIMPLE  worlds  ALL PRIMARY,idx_mainid  NULL    NULL    NULL    2      Using where
1   SIMPLE  world_blocks    ALL NULL    NULL    NULL    NULL    766845  Using where; Using join buffer
1   SIMPLE  world_chunks    eq_ref  PRIMARY,idx_cid PRIMARY 4   WatchBlock.world_blocks.cid 1   Using where
1   SIMPLE  players eq_ref  PRIMARY,idx_pid PRIMARY 4   WatchBlock.world_blocks.player  1   
EXPLAIN on Found Query:
1   SIMPLE  worlds  ALL PRIMARY,idx_mainid  NULL    NULL    NULL    2   Using where
1   SIMPLE  world_blocks    ALL NULL    NULL    NULL    NULL    766845  Using where; Using join buffer
1   SIMPLE  world_chunks    eq_ref  PRIMARY,idx_cid PRIMARY 4   WatchBlock.world_blocks.cid 1   Using where
1   SIMPLE  players eq_ref  PRIMARY,idx_pid PRIMARY 4   WatchBlock.world_blocks.player  1 
x、y、zとcx、czが一致しないため、結果は空になる可能性があります(したがって、これらのそれぞれの1つがdbにない場合、プレーヤーの結果は空である必要があります)