Insert优化
要建立数据库,肯定避免不了很多数据一起插入进去,比如说有100万条数据,一下子插进去的话性能肯定会很差,而且很麻烦,而且吗,万一插入到一半系统宕机了就尴尬了,所以插入的优化可以采用事务的手段,即一起插入,一条失败就回滚的策略,这样只需要提交一次,会更加方便
不仅如此,还可以使用load的方式,直接将数据加载进去
主键优化
这里就不得不讲到一个插入机制,每个页里面,都会放着一定数量的数据
当第一页插满之后,就再重新开一页,继续插入数据,这是按顺序插入,那么问题来了,要是乱序插入怎么办,总不能直接放在后面吧
因为毕竟得按顺序,所以就会涉及到一个页分裂,比如插入一个50,50是在47的后面,那么47往前的一半的数据就复制到新开的第三页2里面,然后再把50放47后面去,那它们放到第三页不是乱了吗,没事,第三页指向第一页,第二页,指向第三页,直接用链表这个方法解决问题,比如说要删除数据,第一页删除了一半,然后第二页只有一半数据,那么两页各空出来一半,很浪费对吧,这时候就会涉及到一个页合并,就是第二页的那些会直接剪切到第一页来,这就是mysql强大的地方
但是啊一直用myqsl的这些页合并以及页分裂,就相当于一直叫MySQL做累活,性能肯定不高,所以啊,就要避免所谓的页分裂,所以还是尽量顺序插入
orderby 优化
使用orderby 优化的一个重要手段就是,给order的字段建立索引,这样就不用回表,加快性能,那么建立索引了就万事大吉了吗,不比如说,在MySQL,我们创建的索引默认是升序索引,这是什么意思呢,比如说,我们进行降序查询,那么就会造成一个反向查询,性能就会不好,所以,要么我们迎合默认索引,要么建立索引的时候,要做一个降序索引。,接着,也要记得遵循最左前缀法则
group by优化
标签:插入,数据,SQL,第三页,索引,mysql,第一页,优化 From: https://www.cnblogs.com/cjtaaa/p/18112493