Mysql
文章平均质量分 92
Jason&Zhou
你知道的越多,你不知道的越多!
展开
-
MySQL存储引擎不能使用索引中范围条件右边的列
一、前言对于range查询,在一条组合索引里面,range字段后面的列是不生效的,不会使用索引,range列自身仍是生效的。二、正文(1)首先建立一个学生表:(2)建立一个联合索引(name,age,class_id)测试Case1:只有 name 且是等于explain select * from student where name = 'Mitsunari' 结果如下:注意:ken_len字段长度和ref字段使用了索引中的第一列,也就是name。Case2:name和ag原创 2021-10-29 16:30:52 · 1480 阅读 · 0 评论 -
Mysql之Using filesort优化
一、前言在使用 explain 命令优化SQL语句的时候常常会在Extra列的描述中发现 Using filesort 选项,其实这个名字很容易造成误解,一开始我以为是“文件排序”的意思,进一步说可能就是使用了磁盘空间来进行排序,但是这个理解是错误的,Using filesort 真正含义其实只有 sort 这一个单词,和 file 没有什么关系,仅仅表示没有使用索引的排序。filesort使用的算法是QuickSort,即对需要排序的记录生成元数据进行分块排序,然后再使用mergesort方法合并块。其原创 2021-10-29 10:14:55 · 7040 阅读 · 1 评论 -
Mysql数据库事务
一、前言MySQL 事务主要用于处理操作量大,复杂度高的数据。比如说:银行系统,一个人转钱给另外一个人,这个过程应该放到一个事务中,不能因为其中一个环节失败,而导致钱的丢失,要么全部成功,要么全部失败。下面带大家了解下数据库事务的特点、事务的隔离级别以及并发事务所带来的问题等等。二、正文1.事务的四个特性?从业务角度出发,对数据库的一组操作要求保持4个特征:Atomicity(原子性):一个事务必须被视为一个不可分割的最小工作单元,整个事务中的所有操作要么全部提交成功,要么全部失败回滚,对原创 2021-07-10 20:00:24 · 317 阅读 · 0 评论 -
MVCC详解
多版本并发控制(MultiVersion Concurrency Control,简称 MVCC )详解一、前言全称Multi-Version Concurrency Control,即多版本并发控制,主要是为了提高数据库的并发性能。以下文章都是围绕InnoDB引擎来讲,因为myIsam不支持事务。同一行数据平时发生读写请求时,会上锁阻塞住。但mvcc用更好的方式去处理读—写请求,做到在发生读—写请求冲突时不用加锁。这个读是指的快照读,而不是当前读,当前读是一种加锁操作,是悲观锁。那它是怎么做到读原创 2021-07-09 17:02:01 · 23201 阅读 · 16 评论 -
Mysql数据库索引详解
一、前言随着我们业务量不断的增大,会发现查询数据库的时间变的越来越长,其实就是数据库到达了性能的瓶颈,这时候需要我们对其进行优化操作,可能我们第一时间就会想到:加索引。没错,这是优化的一个方向,但是我们不能只知道加索引,还应该知道索引都有哪些类型啊,索引是怎样的一种结构啊,聚合索引和非聚合索引的区别啊等等一系列相关的问题。下面我就来分别介绍下这些知识点二、正文1.Mysql索引都有哪几种类型,分别有什么特点?主要有两种类型:哈希索引B+ Tree索引哈希索引:哈希索引能以 O(1)原创 2021-07-06 17:19:14 · 2751 阅读 · 4 评论 -
Mysql数据库优化
一、前言在Mysql数据库索引详解章节中,我们介绍了数据库索引结构和各种索引的概念及其作用。我们知道,对数据库优化可以加索引,但是我们怎么知道加了是什么索引呢?就是说,具体这条sql走的是哪个索引呢?这就需要我们运行执行计划—explain ,通过执行计划来看是否按照我们的意愿走了对的索引,还是走的全表扫描,而且还需要先排除缓存的干扰,还有就是哪些情况会导致索引失效等等。下面先带大家了解下数据库缓存的知识点。二、正文1.Mysql基础架构数据库调优其实一般情况都是我们的SQL调优,SQL的调优原创 2021-07-07 20:54:06 · 375 阅读 · 3 评论