mysql进阶

大数据的情况下规避模糊查询前面加%的情况下

sql提示

为什么介绍覆盖索引尽量避免使用select  *?

因为使用select * 很容易出现回表查询的情况

 建索引:针对username password 建立联合索引  不需要回表查询

前缀索引

 

 单列索引和联合索引

 

 

 索引设计原则 

2. B+树索引  在b+树当中所有数据都会出现在叶子节点中,而且叶子节点形成双向链表

hash索引      hash表 只需要运算出对应的hash值 只支持精确匹配,不支持范围查询

3.主键索引  建表的时候,只要在建表中指定了主键,主键默认建立主键索引

  唯一索引:     如果有一例它不会重复的

  聚集索引:     叶子节点下挂着这一行的数据  默认主键索引就是聚集索引

  二级索引:     叶子节点下挂着主键

 联合索引:遵循最左前缀法则,最左边的列必须存在,如果最左边的列不存在,整个联合索引失效,如果最左边的列存在,但中间跳过了某一列,那么后面的列失效;

索引失效的情况

1.不要再索引列上进行函数运算,否则索引失效

2.字符串不加单引号会造成隐式类型转换失效

3.like模糊匹配如果前面加了%,那代表前面进行模糊匹配,索引失效

4.or连接的条件如果一侧有索引一侧无索引 ,那么索引失效

5.如果mysql评估如果走全表扫描比走索引快,那么索引失效

覆盖索引:查询返回的列在索引结构中都包含不要需要回表查询

回表查询:查询的时候先走二级索引检索到这一行数据的id,再根据id到聚集索引中查找数据

前缀索引:遇到字符串长度较长或大文本数据,可以使用前缀索引缩小长度

索引设计原则

where或者group by 之后添加索引

1如果这一列是唯一的,尽量建唯一索引;

2如果能建立联合索引尽量使用联合索引;

3如果涉及字符串长度较长大文本尽量使用前缀索引;

SQL优化

 插入数据

insert优化

 插入大批量数据

 

 

 

 

 

order by 优化

 

 

 age 升序排  phone 降序排

 

 总结

 group by 优化

 

 

 limit 优化

 

 count 优化

 

 

 

update 优化 

 inoodb引擎三大特性  事务  外键 行级锁

 

 

 

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值