mysql多表联合查询优化的问题

有3个结构几乎一样的表,需要从3个表中查询数据,每个表大概有几万条数据,用下面的查询语句,耗时在5秒以上,请问有什么办法可以提高查询效率
SELECT * FROM(
SELECT id,title,inputtime,description,url,thumb,status FROM sc_news
UNION
SELECT id,title,inputtime,description,url,thumb,status FROM sc_pic
UNION
SELECT id,title,inputtime,description,url,thumb,status FROM sc_video
) AS a
WHERE a.title like '%中国%'
3张表是无关联的,所以采用 UNION 方法

第1个回答  2014-02-28
SELECT * FROM(
SELECT id,title,inputtime,description,url,thumb,status FROM sc_news
WHERE title like '%中国%'
UNION
SELECT id,title,inputtime,description,url,thumb,status FROM sc_pic
WHERE title like '%中国%'
UNION
SELECT id,title,inputtime,description,url,thumb,status FROM sc_video
WHERE title like '%中国%'
) AS a

这样会不会快点。本回答被提问者和网友采纳
第2个回答  2014-02-28
查询的语句方面没有什么可优化的地方,都是用Union,如果三个表没有重复的数据,可以用Union All会快一点,Title这个字段有建立索引吗?
第3个回答  2014-02-28
这个是坑爹的语句,若过要经常搜索的话,建议数据库全文索引
相似回答