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.分页查询,一般通过覆盖索引,子查询的方式提高性能,进行优化
注:目前自学,能力有限,只为方便复习.