一直困惑问题排序在50数据查询下降,ID 索引排序是好,但这个做好了优化,那按其他字段排序大大下降
索引都加上了,还是慢,explain 查询结果吓人, 会有全表搜索,一直找解决的思路
找到的答案:
这几天做一个查询,需要在一个指定的结果集中进行查询,例如:
select * from table_name where doc_id IN ('1dba', 'c20a', '907b')
其中IN子句中的doc_id列表是通过调用一个外部接口获得一组doc_id常量列表,然后在本地库中搜索符合这个列表的数据
记录。后来发现mysql返回的结果集的排序是按照入库顺序给出的,但是我希望能按照doc_id列表的先后顺序进行排序,
经过google得知可以改为:
select * from table_name where doc_id IN ('1dba', 'c20a', '907b') order by FIND_IN_SET('1dba', 'c20a', '907b')
果然达到效果。
赞叹sql博大精深需要仔细研习。。。。。。
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/guoguo1980/archive/2009/12/31/5112375.aspx
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/guoguo1980/archive/2009/12/31/5112375.aspx