sql优化

insert插入

1.批量插入(批量插入尽量控制在500-1000条数据)

 2.手动事物提交(多条插入语句会进大量的开启事物,关闭事物的操作,浪费资源和时间)

3.按主键顺序插入(具体可查看主键优化内容)

 4.大批量插入数据时可以使用load指令插入(百万级插入以上,load使用时需要经过下述操作)

注:--local infile表示当前客户端连接服务端时需要加载本地文件,'root/sql.log'表示需要导入的文件名称,terminated by ','表示字段中间用什么分隔符(这个没有强制要求','可以是其他的符号),lines terminated by '\n'表示行与行之间的间隔符.

主键优化

数据组织方式:在innodb储存引擎中,表数据都是根据主键顺序组织存放的,这种储存方式的表称为索引.

 

主键顺序插入

 主键乱序插入

 当一页数据满了时,再次乱序插入会造成当前页(page1)从中间分裂开,然后重新建立一个新的页,将数据50存入后,再将链表链接.(这个过程称之为页分裂)

 删除操作

 

当进行删除操作时,当一页中数据删除到剩下50%(innodb中默认为50%),innodb就会自动去寻找当前页(page2)的前后两个页,看是否有合并的可能,用来优化空间(这个过程称之为页合并,页合并的的阈值可以自己控制,在创建表或者创建索引时指定)

主键设计原则

1.创建主键时在满足业务需要的同时,尽量降低主键长度.

2.插入数据时尽量顺序插入,选择使用AUTO_INCREMENT.

3.业务操作时,尽量避免修改主键.

order by优化

1.尽量使用覆盖索引.

2.根据排序建立合适的索引,多字段排序时,也遵守最左前缀法则.

3.多字段排序,一个升序一个降序,要注意联合索引建立的时的规则.

group by优化

1.在分组操作是,可以通过索引提高效率.

2.分组操作时,索引的使用也遵守最左前缀法则.

limit优化

1.分页查询,一般通过覆盖索引,子查询的方式提高性能,进行优化

注:目前自学,能力有限,只为方便复习.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值