【每日阅读】2020年12月01日-MySQL事务和索引

事务的隔离性

“可重复读”的意思是在事务开启后,无论其他事务将数据修改成什么样了,多次读数据仍然是事务开始时的样子。实现的方式是借助了回滚日志(undo log)。

autocommit

这个参数如果表达的是默认情况是否自动提交事务。

如果设置为0,则每个sql都会自动开启事务,而且必须显示的commit事务才会提交。

如果设置为1,则每个sql都会自动开启事务并且自动commit。但是如果显式的开启事务,则不会自动commit,而是会等待显式的commit。

索引

二叉搜索树的搜索效率很高,但是因为只有二叉,所以树高会很高,存储到硬盘上的话会导致每次读数据都会读很多次硬盘,效率很低。所以MySQL使用B+树,因为是多叉树,所以树高低,一般只有3-4层。可想而知效率有多高。

innodb每张表都是一个主键索引树,可能还有多个普通索引树。主键索引又叫聚簇索引。在叶子节点上包含行的所有数据。普通索引的叶子节点是主键ID。所以查询数据时如果有主键,就只需要查询一次,如果只有普通索引,就需要查询两次,先查询到主键ID,再去主键索引树查询整行数据。

原创文章,作者:geekgao,如若转载,请注明出处:https://www.geekgao.cn/archives/2726

(0)
geekgaogeekgao博主
上一篇 2020年11月30日 下午11:32
下一篇 2020年12月3日 上午12:56

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

GitHub
分享本页
返回顶部

Warning: error_log(/usr/local/lighthouse/softwares/wordpress/wp-content/plugins/spider-analyser/#log/log-2717.txt): failed to open stream: No such file or directory in /usr/local/lighthouse/softwares/wordpress/wp-content/plugins/spider-analyser/spider.class.php on line 2900