sql优化

一. 插入数据

主键顺序插入的效率大于乱序插入的效率 

大批量插入数据

如果一次性需要插入大批量数据,使用insert语句插入性能较低,此时可以使用Mysql数据库提供的load指令进行插入。(将特定文件里面的内容加载到数据库中去)

二. 主键优化

 2.1 数据的组织方式

 2.2 页分裂

页可以为空,也可以填充一半,也可以填充100%。每个页包含2-N行数据(如果一行数据多了,会行溢出),根据主键排列。

主键顺序插入的话是一个一个的往后插,一页满了又换下一页。

 

当插入50这个时,要插入的位置满了,此时就会先开辟一个新的数据页,然后找到第一个数据页50%的位置,然后将后面的数据移动到新开辟的数据页中。

 

 然后将50放到新的数据页后面。

最后再对链表指针进行设置。

 2.3 页合并

13,14,15,16都被标记为删除了。 

 

2.4 主键的设计原则 

 

三. Order by 优化 

 

这里进行先对age、phone升序排序。没有索引效率不高

 

 

 

Backward index scan :表示反向扫描索引。

创建索引的时候如果没有指定顺序,默认指定是升序。所以这里会出现filesort

 所以为了解决这个问题可以创建一个索引

3.1 order by注意事项

 四. group by 优化

没有索引的时候

 创建了联合索引后,查询的...

 不在根据profession分组,而是根据age分组。将不满足最左前缀法则。

划重点!!!覆盖索引:select的数据列只用从索引中就可以获得了,不必读取数据行。Using index:表明相应的select操作使用了覆盖索引,避免了访问表的数据行。 

满足最左前缀法则。 

五. limit 优化

六. count 优化 

count(*)不用取值,所以效率高。

七. update优化 

 

所以说后面的条件字段是必须要有索引的,否者就会从行锁升级为表锁。就会影响并发性能了。 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值