Mysql
文章平均质量分 77
Mysql
摆烂的小趴菜
写个博客,记记笔记。
展开
-
认识分库分表
认识分库分表原创 2022-10-24 22:40:44 · 362 阅读 · 0 评论 -
MySQL explain详解
本文主要讲述如何通过 explain 命令获取 select 语句的执行计划,通过 explain 我们可以知道以下信息:表的读取顺序,数据读取操作的类型,哪些索引可以使用,哪些索引实际使用了,表之间的引用,每张表有多少行被优化器查询等信息。 下面是使用 explain 的例子: 在 select 语句之前增加 explain 关键字,MySQL 会在查询上设置一个标记,执行查询时,会返回执行计划的信息,而不是执行这条SQL(如果 from 中包含子查询,仍会执行该子查询,将结果放入临时表中)。 复制代码转载 2021-08-19 19:56:08 · 107 阅读 · 0 评论 -
事务的隔离级别
以MYSQL数据库来分析四种隔离级别 基础概念 更新丢失(Lost update) 如果多个线程操作,基于同一个查询结构对表中的记录进行修改,那么后修改的记录将会覆盖前面修改的记录,前面的修改就丢失掉了,这就叫做更新丢失。这是因为系统没有执行任何的锁操作,因此并发事务并没有被隔离开来。 第1类丢失更新:事务A撤销时,把已经提交的事务B的更新数据覆盖了。 第2类丢失更新:事务A覆盖事务B已经提交的数据,造成事务B所做的操作丢失。 解决方法:对行加锁,只允许并发一个更新事务。 脏读(Dirty Reads) 脏原创 2021-08-15 22:41:11 · 80 阅读 · 0 评论 -
Sql执行计划的一些指标含义
Using where: 表示优化器需要通过索引回表查询数据。 Using index: 即覆盖索引,表示直接访问索引就足够获取到所需要的数据,不需要通过索引回表,通常是通过将待查询字段建立联合索引实现。 Using index condition: 在5.6版本后加入的新特性,即大名鼎鼎的索引下推,是MySQL关于减少回表次数的重大优化。 Using filesort: 文件排序,这个一般在ORDER BY时候,数据量过大,MySQL会将所有数据召回内存中排序,比较消耗资源。 ...原创 2021-08-15 21:43:09 · 379 阅读 · 0 评论 -
慢查询优化方案
如果你的项目中出现了一些查询超时情况,很可能是项目中有了一些慢查询的情况产生,下面就慢查询的排查和解决方案进行一番分析。 sql排查方式 首先,如何排查sql是否走了索引,通过explain关键字找出sql的执行计划,通过在对执行计划的分析,找出某表关联部分是否走了索引。 具体语法: explain select * from table_name; 让不走索引的sql走索引 mysql有个特别神奇的东西叫做索引,一个sql走或不走索引,查询效率差别极大,因此大部分的查询效率问题都是不走索引造成的,也就意原创 2021-08-15 21:36:35 · 4072 阅读 · 0 评论 -
不走索引的情况及一些规避方案
通过一些日常的开发经验,归纳了一些不走索引的常规情况,欢迎大家补充或指正。 1、在字符集不一致的时候,不走索引。 如果两个关联表的字符集不一致,会导致索引失效,因此,在生产环境执行DDL建表语句时,要注意不要指定某表或某字段(尤其是关联字段)的字符集,让整个数据库的字符集一致,这样可以避免因字符集导致索引失效的慢sql的问题。 2、在字段类型不一致的时候,不走索引。 如果有两个关联键字段类型不一致的时候,会导致索引失效。因此在执行创建关联键字段时候,一定要确定另一张表的关联键字段类型是什么。 3、在左模糊查原创 2021-08-15 20:25:32 · 1691 阅读 · 0 评论 -
mysql B+树 索引机制
索引在mysql数据库中分三类:B+树索引,Hash索引,全文索引。 我们今天要介绍的是工作开发中最常接触到innodb存储引擎中的的B+树索引。 要介绍B+树索引,就不得不提二叉查找树,平衡二叉树和B树这三种数据结构。B+树就是从他们仨演化来的。 二查找叉树、平衡二叉树、B树、B+树 1 二叉查找树 首先,让我们先看一张图 从图中可以看到,我们为user表(用户信息表)建立了一个二叉查找树的索引。图中的圆为二叉查找树的节点,节点中存储了键(key)和数据(data)。键对应user表中的id,数据对应转载 2021-08-14 22:29:16 · 160 阅读 · 0 评论