mysql高性能第三版读书笔记5

MySQL实现分区表方式是对底层表的封装,意味着索引按照分区的子表定义,没有全局索引,通过partition by子句定义每个分区存放的数据,使用场景:1表非常大,无法全部房子内存中,或者只在表的部分有热点数据,其他是历史数据,2分区表容易维护,可以删除某个分区,3分区表可以部署在不同的物理设备上,4分区表能单独备份和恢复。分区表的增删改查操作都会先打开并锁住所有的底层表,然后确定数据对应的分区,最后对相应的底层表进行相同的操作,分区表不会锁住全表,会分区释放对应表锁。分区使用注意事项:null值会使分区过滤无效,分区列和索引列不匹配容易导致分区失效,假如在a列定义索引,在b列分区,则扫描b列上的索引需要扫描每一个分区内对应的索引,如果扫描分区内对应的索引的非叶子节点都在内存中,速度还可以,还是就是打开并锁住底层表成本高,可以使用批量的方式降低单个操作带来的系统开销。

原文地址:https://www.cnblogs.com/nizuimeiabc1/p/12862770.html