43.分区表

0 阅读1分钟

将大表分成多个小表,物理方式隔开。特别适合按范围、列表、哈希或键等规则划分数据。

分区表能提升我们找数据的效率,如果分区表分的不好,就会导致适得其反。

对比单表和分区表加间隙锁

绿色区域就是间隙锁

image.png

(单表)

间隙锁已经把这个范围锁住了,其他事务想操作这块区域,只能等待事务处理完。

image.png

(分区表)

分区表隔开了间隙锁,不影响事务的插入操作。

分区表过程

  • mysql第一次打开分区表,需要访问所有的分区
  • server层,认为这是一张表,所有分区共用一把锁
  • 引擎层,认为是不同表,锁之后的操作,根据分区表的规则,只访问必要的分区

分区表注意事项

分区表不是分的越细越好,一千万的数据量还只是小表。也不需要提前创建太多分区表。比如按月份分,到了年底再预创建下一年的分区表。