码迷,mamicode.com
首页 > 数据库 > 详细

简单的数据库查询优化

时间:2021-01-14 10:58:08      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:code   替代   like   har   int   null   简单的   主键   val   

神器的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 类型字段通过 数字去查询时,索引会丢失

简单的数据库查询优化

标签:code   替代   like   har   int   null   简单的   主键   val   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有
迷上了代码!