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