InnoDB支持的事务
InnoDB支持事务,主要是开启了是否支持自动提交,这也是InnoDB的性能不如MyISAM的部分原因
关闭自动提交 set autocommit=0;
开启事务 start transtation
如果sql没有异常
要执行的sql语句 sqlstatement
提交 commit
否则
回滚 rollback
没有mysql的分区partition,我们常用的mysql引擎是myisam和innodb。mysql目前支持的分区格式有四种。range,list,hash,key。一般情况下使用range,list主要应用关联键值为枚举的类型。
myisam和innodb需要注意的
myisam存储的时候是表结构、表数据、表索引各一个文件。当我们使用分区的时候会为每一个分区建一个数据文件和索引文件。
innodb的存储分为共享表空间和独享表空间。innodb默认的是独享表空间,也就是表结构,索引、数据都是在一个文件中的。当使用这种存储模式的时候,使用partition的时候生成的分区文件只是在一个文件中,达不到分区的效果。所以innodb引擎的表要改成共享表空间。
分区的目的:将大数据表的存储通过分区分割成几个小文件达到物理上的优化。当一个表达到上千万条数据的时候,对表的操作会很耗费cpu和内存,尤其是在where有多个条件的时候。通过分区有效的减少影响行数,来达到优化的效果。具体的可通过 desc sqlstatement 来查看比对效果。