SELECT t_wenzhang.contents, t_wenzhang.createTime, t_wenzhang.title,t_wenzhang.pagePath FROM t_wenzhang LEFT JOIN t_keys ON t_keys.id = t_wenzhang.keyword where SUBSTRING( KeyP, 1, 1 )='" + zimu + "' order by createTime desc
上面t_wenzhang 表4W 数据,t_keys 3W,怎么这个执行10+秒!如果和优化!
上面t_wenzhang 表4W 数据,t_keys 3W,怎么这个执行10+秒!如果和优化!
其次如果还是慢可以试着改变一下引擎
最后可以用explan来帮助选择更好的索引和写出更优化的查询语句!
where SUBSTRING( KeyP, 1, 1 )='" + zimu + "' 引起查询变慢,贴出表结构看看。
不会使用索引,应写作这样
KeyP like '" + zimu + "%'
like 'a%'
如果不行,请问楼主是在服务器上测试还是本地,如果是服务器上可以尝试建立“存储过程”。
create procedure...
SUBSTRING( KeyP, 1, 1 )='" + zimu + "' 这里是php混着吧? 应该是 +$zimu+ 这样?
改成 KeyP like '{$zimu}%' 或者 KeyP like '"+$zimu+"%' t_keys.id 应该已有索引(主键)
t_wenzhang.keyword加索引
createTime 加索引
KeyP也加索引(可以加长度为1的索引) 然后, 就没问题了