Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
mysql左连接执行时间过长_Mysql_Left Join - Fatal编程技术网

mysql左连接执行时间过长

mysql左连接执行时间过长,mysql,left-join,Mysql,Left Join,我已经找到了一些例子,但仍然无法快速完成 歌曲表: song_id song_name vote_id song_id vote_ip favorite_id song_id favorite_owner SELECT * FROM songs as s LEFT JOIN votes as v ON v.song_id = s.song_id AND v.vote_ip='78.63.35.138' LEFT JOIN favorites as f ON f.song_id = s

我已经找到了一些例子,但仍然无法快速完成

歌曲表:

song_id
song_name
vote_id
song_id
vote_ip
favorite_id
song_id
favorite_owner
SELECT * FROM songs as s 
LEFT JOIN votes as v ON v.song_id = s.song_id 
AND v.vote_ip='78.63.35.138' 
LEFT JOIN favorites as f ON f.song_id = s.song_id 
AND (f.favorite_owner='78.63.35.138' 
OR f.favorite_owner='1') WHERE s.song_id!='' 
LIMIT 100 OFFSET 1
;
投票表:

song_id
song_name
vote_id
song_id
vote_ip
favorite_id
song_id
favorite_owner
SELECT * FROM songs as s 
LEFT JOIN votes as v ON v.song_id = s.song_id 
AND v.vote_ip='78.63.35.138' 
LEFT JOIN favorites as f ON f.song_id = s.song_id 
AND (f.favorite_owner='78.63.35.138' 
OR f.favorite_owner='1') WHERE s.song_id!='' 
LIMIT 100 OFFSET 1
;
收藏夹表:

song_id
song_name
vote_id
song_id
vote_ip
favorite_id
song_id
favorite_owner
SELECT * FROM songs as s 
LEFT JOIN votes as v ON v.song_id = s.song_id 
AND v.vote_ip='78.63.35.138' 
LEFT JOIN favorites as f ON f.song_id = s.song_id 
AND (f.favorite_owner='78.63.35.138' 
OR f.favorite_owner='1') WHERE s.song_id!='' 
LIMIT 100 OFFSET 1
;
我的查询:

song_id
song_name
vote_id
song_id
vote_ip
favorite_id
song_id
favorite_owner
SELECT * FROM songs as s 
LEFT JOIN votes as v ON v.song_id = s.song_id 
AND v.vote_ip='78.63.35.138' 
LEFT JOIN favorites as f ON f.song_id = s.song_id 
AND (f.favorite_owner='78.63.35.138' 
OR f.favorite_owner='1') WHERE s.song_id!='' 
LIMIT 100 OFFSET 1
;

我得到了结果,但查询执行时间是12秒。

显示所有表的CREATETABLE语句,以及EXPLAIN SELECT的结果。。。在你的问题上,表上有什么索引?您是否尝试过使用MySQL的
explain
函数来查看它在做什么?正在加载多少数据?在任何人都能回答这个问题之前,您需要告诉我们更多关于这一切的信息。首先,您需要加入三个表-这取决于数据库的大小,这肯定需要时间。第二,
s.song\u id!=''真的吗?你有多少首没有身份证的歌?!结构:解释:也许我不是?也许有更简单的方法吗?我只想按song_id融合3张桌子