list分区和range分区是类似的,不过分区列的值是离散的,而非连续的。
create table t4( a int null, b int )engine=innodb partition by list(b) ( partition p0 values in (1,3,5,7,9), partition p1 values in (2,4,6,8,10)); |
在insert的过程中MyISAM和InnoDB的处理方法是不同的,如果插入的值不在list列表中,MyISAM会提交该行之前的值;InnoDB则会作为一个事务整体提交处理,如果遇到异常的行就会整体回滚。