MySQL
数据库
向前冲鸭
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
一条sql语句执行很慢的原因有哪些
一条sql语句执行的很慢的话,可以大体上分两种情况,一种是偶尔执行的慢,一种是总是执行的慢。 偶尔执行的慢 可能是数据库此时在刷脏页。脏页就是内存中的数据跟磁盘上的数据不一致,数据库先写内存,并把修改操作记录到redo log,等空闲的时候再将redo log中的数据刷新到磁盘上,如果此时redo log 已经满了,那就不得不刷脏页了,或者内存不够,就得需要清除部分内存,如果清除的是干净页,那就可以直接清除,如果是脏页,就得先刷新到磁盘中才能清除。 可能是我们要查询的数据表加了锁,此时锁已经被占有,我们拿原创 2020-07-09 21:33:24 · 409 阅读 · 0 评论 -
再谈事务
MySQL的可重复读怎么实现的 使用MVCC,多版本并发控制,一种并发控制方式。 默认给每一行数据的后面加了两列,一列是创建时间,一列是删除时间,相当于是一个版本号。 如果当前事务是select,那就只能查询到创建时间早于当前事务的版本号,删除时间晚于当前事务版本号的记录; 如果当前事务是insert,那就将当前事务的版本号分配给新插入的每一行作为创建时间; 如果当前事务是delete,那就将当前事务的版本号分配给删除的每一行作为删除时间; 如果当前事务是update,那就将当前事务的版本号分配给每一行作原创 2020-06-28 14:03:05 · 209 阅读 · 0 评论 -
mysql优化
先说一下数据库操作数据的过程,客户端先跟数据库建立连接,然后去数据库查询数据,数据库会先查询缓存,如果缓存中有相应的数据,就直接返回结果,如果没有,就会经过分析器,优化器,执行器,然后去存储引擎中查找数据,最后再将查询到的数据返回。所以我们对mysql的优化是在执行器执行之前的分析器和优化器。 分析器就是分析sql语句中的符号,字段都是干嘛的,优化器就是对sql语句进行优化。 explain mysql优化肯定都会想到先用explain看一下执行计划,看是否跟自己预期的一样,是否有没有用到预期的索引,但是要原创 2020-06-20 08:47:54 · 153 阅读 · 0 评论 -
bin log&redo log&undo log
bin log bin log存储的是insert/delete/update的sql语句; 主要功能是复制和恢复,主服务器和从服务器需要保持数据一致,可以通过bin log来同步数据; 如果数据库的所有数据都被删除,可以通过bin log来进行恢复,bin log存储的是对所有数据的修改记录。 bin log是所有sql都有的,不管用的是什么存储引擎; bin log在事务提交后才记录。 redo log 存储的是数据的物理变化,比如:在xxx页修改xxx; redo log是为持久化而生,事务中的原创 2020-06-15 13:38:20 · 242 阅读 · 0 评论 -
索引
什么是索引 索引是一种特殊的文件,也占据着物理空间,保存着数据库表中所有记录的引用指针; 索引也是一种数据结构,是数据库管理系统用于排序的一种数据结构,可以协助快速查询和更新数据,常用的数据结构有hash和BTREE; 通俗的来说,索引就是目录,为了快速找到书中的内容,对书中的内容通过索引来建立目录。 索引优缺点 优点: 大大加快了查询的效率; 通过使用索引,在查询过程中,可以使用优化隐藏器,提高系统性能。 缺点: 索引的创建和维护都需要一定的开销,而且在对数据库表中的数据进行增加,删除,修改时,原创 2020-06-14 15:40:56 · 211 阅读 · 0 评论 -
事务
什么是事务 事务是不可分割的数据库操作序列,是数据库并发访问的基本单位,其执行结果必定使数据库从一种一致性状态到另一种一致性状态,是逻辑上的操作,要么全部执行成功,要么全部执行失败。 事务的四大特性 原子性:原子不可在分割,要不全部执行成功,要不全部执行失败; 一致性:事务在提交前后,数据应保持一致,多个事务对数据的读取结果应该是一致的; 隔离性:多个事务并发访问数据库时,一个事务不会被其它事务所影响; 持久性:事务提交后,对数据库数据的改变是持久的。 脏读、不可重复读、幻读 脏读:一个事务对数据进行原创 2020-06-14 14:30:25 · 329 阅读 · 1 评论
分享