我目前有个系统是SP5 10357,MySQL数据库。用一句SQL生成查询结果,观察最终在数据库执行的SQL为:
SELECT * FROM (SELECT * FROM (select t.* from tlk_form_ticket t where 1=1 and t.item_cat_0 = '01' and t.item_tk_buildtime >= '2013-06-01 00:00:00' and t.item_tk_buildtime <= '2013-12-31 23:59:59') table_orderby WHERE DOMAINID ='11e1-82db-9cec3503-bc72-7f54294ec671' ORDER BY table_orderby.ITEM_TK_ID DESC, table_orderby.ID ) AS TB LIMIT ;
嵌套了3层,效率很低下,请问如何优化,比如改成:
select t.* from tlk_form_ticket t where t.item_cat_0 = '01' and t.item_tk_buildtime >= '2013-06-01 00:00:00' and t.item_tk_buildtime <= '2013-12-31 23:59:59' and t.DOMAINID ='11e1-82db-9cec3503-bc72-7f54294ec671' order by t.ITEM_TK_ID DESC, t.ID limit 17530,5;
可以提高10倍效率。
我如何才能优化?
升级到最新版本能优化? |