您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息
免费发信息

MYSQL这个怎么优化

2024/5/16 9:14:28发布7次查看
select * 
from add
order by length( title ) desc 
limit 10
数据20w条,执行要1秒多。。。。怎么优化哇
回复讨论(解决方案) 这已经是最简单的了啊 还怎么优化啊 建议用缓存吧 查询的结果缓存起来 不需要反复查询了
order by 恐怕优化不了,1秒多也不慢呀。
20w条不多,建议重新设计数据库,新建一个列,储存length( title ) ,在插入时,用 strlen($title) 计算。然后这个新的列建立索引。(如果id是自增的话,可以尝试把 id和这个新列 作为一个primary key)
另外,不要用select * ,用 select title,content,date 之类的,把你需要的列写出来。
做一个 length( title ) 的索引
你的排序规则很怪异哟
desc select * 
from add
order by length( title ) desc 
limit 10
分析下sql,关键字段加上索引。
关键字加索引能提升不少效率。
select * 可以不用返回 全部字段吗? 可以在存储的时候多一个字段来存储 length( title ) 的值 ,并且用两个触发器维护这个值(update和insert)后都要维护,再在这列上建立索引 ,应该会好一点吧
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录