首页 > 数据库技术 > 详细

简单的数据库查询优化

时间:2021-01-13 14:27:50      阅读:20      评论:0      收藏:0      [点我收藏+]

神器的Limit 1

如果明知道只会有一条返回数据,则可避免全表扫描,在第一次找到数据时就返回

like语句的优化

like语句一般业务要求都是 ‘%关键字%‘这种形式,但是依然要思考能否考虑使用右模糊的方式去替代产品的要求

批量插入

INSERT into person(name,age) values(‘A‘,24),(‘B‘,24),(‘C‘,24);

偏移量offse过大

因此我们先查出偏移后的主键,再根据主键索引查询数据块的所有内容即可优化

# 反例(耗时129.570s)

select * from task_result LIMIT 20000000, 10;

# 正例(耗时5.114s)

SELECT a.* FROM task_result a, (select id from task_result LIMIT 20000000, 10) b where a.id = b.id;

# 说明 task_result表为生产环境的一个表,总数据量为3400万,id为主键,偏移量达到2000万

count(*) 还是 count(id)

说明:count(*)会统计值为 NULL 的行,而 count(列名)不会统计此列为 NULL 值的行

COUNT(*)=COUNT(1)>COUNT(id)

字段类型不同导致索引失效

数据库在查询的时候会作一层隐式的转换,比如 varchar 类型字段通过 数字去查询时,索引会丢失

简单的数据库查询优化

原文:https://www.cnblogs.com/vaen/p/14271603.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!