文章分类 - mysql
摘要:一、索引 在数据量不是很大时,大多慢查询可以用索引解决,大多慢查询也因为索引不合理而产生。 MySQL 索引基于 B+ 树,这句话相信面试都背烂了,接着就可以问最左前缀索引、 B+ 树和各种树了。 说到最左前缀,实际就是组合索引的使用规则,使用合理组合索引可以有效的提高查询速度,为什么呢? 因为索引
阅读全文
摘要:1. 现象与问题 ORDER BY排序后,用LIMIT取前几条,发现返回的结果集的顺序与预期的不一样。 下面是我遇到的问题: 可以看到,带LIMIT与不带LIMIT的结果与我预期的不一样,而且“很不可思议”,真是百思不得其解。 后来百度了一下,如果order by的列有相同的值时,mysql会随机选
阅读全文
摘要:花1分钟时间,了解聚集索引,非聚集索引,联合索引,索引覆盖。 举例,业务场景,用户表,表结构为: t_user( uid primary key, login_name unique, passwd, login_time, age, … ); 聚集索引(clustered index):聚集索引决
阅读全文
摘要:本文缘起自《一分钟了解索引技巧》的作业题。 假设订单业务表结构为: order(oid, date, uid, status, money, time, …) 其中: oid,订单ID,主键 date,下单日期,有普通索引,管理后台经常按照date查询 uid,用户ID,有普通索引,用户查询自己订单
阅读全文
摘要:一、一些常用的SQL实践 (1)负向条件查询不能使用索引 select * from order where status!=0 and stauts!=1 not in/not exists都不是好习惯 可以优化为in查询: select * from order where status in(
阅读全文