Posted on:
Last modified:
总的来说,引用完整性和事物才是数据库的本质,所以说:“MyISAM is a file system that understands SQL. There’s no comparison. If you want a database engine with MySQL, use InnoDB.”
MyISAM 没有使用聚簇索引,InnoDB 使用了聚簇索引。
读未提交 Read Uncommitted(在本次事务中可以读到其他事务中没有提交的数据 - 脏数据)
读已提交 Read Committed (只能读到其他事务提交过的数据。如果在当前事务中,其他事务有提交,则两次读取结果不同)
可重复读 Repeatable Read(MySQL 默认,保证了事务中每次读取结果都相同,而不管其他事物是否已经提交。会出现幻读)
序列化 Serializable(隔离级别中最严格的,开启一个 serializable 事务,那么其他事务对数据表的写操作都会被挂起)
读未提交:别人修改数据的事务尚未提交,在我的事务中也能读到。
读已提交:别人修改数据的事务已经提交,在我的事务中才能读到。
可重复读:别人修改数据的事务已经提交,在我的事务中也读不到。
串行:我的事务尚未提交,别人就别想改数据。
InnoDB 使用聚簇索引,聚簇索引按照主键的顺序在磁盘上。MyISAM 不使用聚簇索引,行按照插入顺序在磁盘上。
聚簇索引的优势在于按照主键范围读取,而劣势在于主键中插入可能造成性能问题。
© 2016-2022 Yifei Kong. Powered by ynotes
All contents are under the CC-BY-NC-SA license, if not otherwise specified.
Opinions expressed here are solely my own and do not express the views or opinions of my employer.
友情链接: MySQL 教程站