mysql
码农单克
这个作者很懒,什么都没留下…
展开
-
MySQL 四种隔离级别,来复习一下吧
SQL标准定义了4类隔离级别,包括了一些具体规则,用来限定事务内外的哪些改变是可见的,哪些是不可见的。低级别的隔离级一般支持更高的并发处理,并拥有更低的系统开销。Read Uncommitted(读取未提交内容)在该隔离级别,所有事务都可以看到其他未提交事务的执行结果。本隔离级别很少用于实际应用,因为它的性能也不比其他级别好多少。读取未提交的数据,也被称之为脏读(Dirty Read)。Read Committed(读取提交内容)这是大多数数据库系统的默认隔离级别(但不是MySQL默认的)。它满足了原创 2020-07-20 21:55:28 · 100 阅读 · 0 评论 -
MySQL并发控制之读写锁和锁粒度详解
**无论何时,只要有多个査询需要在同一时刻修改数据,都会产生并发控制的问题。本章的目的是讨论MySQL在两个层面的并发控制:**服务器层与存储引擎层。并发控制是 一个内容庞大的话题,有大量的理论文献对其进行过详细的论述。本章只简要地讨论 MySQL如何控制并发读写,因此读者需要有相关的知识来理解本章接下来的内容。以Unix系统的email box为例,典型的mbox文件格式是非常简单的。一个mbox邮箱 中的所有邮件都串行在一起,彼此首尾相连。这种格式对于读取和分析邮件信息非常友 好,同时投递邮件也很容易原创 2020-07-06 22:27:33 · 332 阅读 · 0 评论 -
面试官:有哪些原因导致一条SQL语句执行得很慢?
说实话,这个问题可以涉及到 MySQL 的很多核心知识,可以扯出一大堆,就像要考你计算机网络的知识时,问你“输入URL回车之后,究竟发生了什么”一样,看看你能说出多少了。之前面试的实话,也问到这个问题了,不过答的很不好,之前没去想过相关原因,导致一时之间扯不出来。所以今天,我带大家来详细扯一下有哪些原因,相信你看完之后一定会有所收获,不然你打我。一、分类讨论一条 SQL 语句执行的很慢,那是每次执行都很慢呢?还是大多数情况下是正常的,偶尔出现很慢呢?所以我觉得,我们还得分以下两种情况来讨论。1、大多原创 2020-07-05 14:59:33 · 129 阅读 · 0 评论 -
和面试官面对面谈了半小时MySQL事务隔离性
提到MySQL的事务,我相信对MySQL有了解的同学都能聊上几句,无论是面试求职,还是日常开发,MySQL的事务都跟我们息息相关。而事务的ACID(即原子性Atomicity、一致性Consistency、隔离性Isolation、持久性Durability)可以说涵盖了事务的全部知识点,所以,我们不仅要知道ACID是什么,还要了解ACID背后的实现,只有这样,无论在日常开发还是面试求职,都能无往而不利。为了大家更好的阅读体验,对ACID的深入分析将分为上下两篇。本篇为上篇,主要围绕ACID中的I,也原创 2020-06-20 22:16:30 · 262 阅读 · 0 评论 -
一种强大的MySQL索引—覆盖索引
通常大家都会根据査询的WHERE条件来创建合适的索引,不过这只是索引优化的一个方 面。设计优秀的索引应该考虑到整个查询,而不单单是WHERE条件部分。索引确实是一 种查找数据的高效方式,但是MySQL也可以使用索引来直接获取列的数据,这样就不 再需要读取数据行。如果索引的叶子节点中已经包含要查询的数据,那么还有什么必要 再回表査询呢?如果一个索引包含(或者说覆盖)所有需要査询的字段的值,我们就称<3S 之为“覆盖索引”。覆盖索引是非常有用的工具,能够极大地提高性能。考虑一下如果査询只需要扫描索引 而无须回原创 2020-06-17 19:20:29 · 121 阅读 · 0 评论 -
MySQL的各大存储引擎
1.InnoDB:数据和索引存放在单独的文件,聚簇索引,行级锁,事务,MVCC2.MyISAM:(1)缺点:不支持事务和表级锁,因为不支持表锁,锁颗粒比较大,因此适合只读和小文件。(2)文件:数据文件和索引文件以.MYD和.MYI结尾。(3)压缩表:压缩表不能修改,可以减少磁盘占用,也可以减少磁盘I/O;支持索引,所以只读;记录单独存放,要去单行不需要解压整个表。**3.memory:**不需要进行磁盘I/O,查询速度非常快;使用的是表级锁,并发写入能力较低;系统中的临时表,就是使用memory。原创 2020-06-16 20:43:51 · 129 阅读 · 0 评论