mysql
关于mysql的一些东西
凹凸曼蓝博one
这个作者很懒,什么都没留下…
展开
-
mysql执行计划EXPLAIN各字段简单认识
EXPLAIN SELECT * FROM `student` where id = 1EXPLAIN是优化sql时必不可少的工具,查看sql执行计划能有效地帮助我们优化sql。在sql语句前加EXPLAIN 关键字会出现如下图所示的执行计划,这篇主要就是简单认识了解下执行计划各个字段的意思。id:代表查询的序号,多表查询时,序号决定了访问表的顺序。id不同时先访问序号大的,id相同时从上往下访问。select_type:代表查询的类型,主要是区别普通查询和联合查询、子查询之类的复杂查询。常见原创 2020-07-16 16:39:33 · 300 阅读 · 0 评论 -
浅析mysql事务与锁机制
文章目录什么是事务?事务的四大特性(ACID):事务并发带来的问题:mysql事务的隔离级别:MVCC与LBCCInnoDB中怎么实现的MVCC锁行锁表锁InnoDB行锁原理InnoDB行锁算法事务隔离级别的选择先回顾一下概念性问题——什么是事务?官方点说,事务就是数据库管理系统执行过程中的一个逻辑单位,由一个有限的数据库操作作序列构成。通俗点说,事务就是一组操作要么同时成功要么同时失败。事务的四大特性(ACID):1.原子性(atomicity):一个事务必须视为一个不可分割的最小工作单元,整原创 2020-07-01 17:41:25 · 235 阅读 · 0 评论 -
mysql索引在存储引擎中的实现及索引的使用原则
文章目录索引在存储引擎中的实现MYISAM存储引擎InnoDB存储引擎索引的使用建立索引的基本规则覆盖索引索引在存储引擎中的实现主要就看MYISAM和InnoDB,这两个是最常见的。命令: show variables like 'datadir';可以查看数据和索引存放的目录在目录下我们看到有“.frm”文件,这是表结构定义的文件,任何存储引擎都有的。MYISAM存储引擎MYISAM存储引擎的表有两个文件:“.MYD”和“.MYI”。D就代表data,用来存放数据的文件。I代表Inde原创 2020-06-24 10:26:11 · 422 阅读 · 0 评论 -
mysql索引及索引的存储结构
文章目录什么是索引索引的存储结构如果使用有序数组如果使用单链表如果使用二分查找树(Binary Search Tree)平衡二叉树(AVL树)多路平衡查找树(B Trees)加强版多路平衡树(B+ Trees)简单了解HASH索引前言:首先推荐一个数据结构可视化的网站:https://www.cs.usfca.edu/~galles/visualization/Algorithms.html,本文不做过深的数据结构剖析,但是要简单了解一些数据结构的特性和概念。了解索引的存储结构前,我们必须要先了解一些索原创 2020-06-22 17:03:20 · 3505 阅读 · 0 评论 -
简单分析mysql的InnoDB存储引擎的磁盘架构
文章目录1.系统表空间(System Tablespace)双写缓冲(Doublewrite Buffer)2.独占表空间(File-Per-Table Tablespace)3.通用表空间(General Tablespaces)4.临时表空间(Temporary Tablespace)5.重做日志(redo log)6.撤销表空间(undo Tablespaces)undo logbinary log一条更新语句的完成执行流程图上图是mysql官方文档中提供的InnoDB架构图,左侧是内存架构,右原创 2020-06-19 17:52:04 · 486 阅读 · 1 评论 -
简单分析mysql的InnoDB存储引擎的内存架构
文章目录读缓存(buffer pool)写缓存(change buffer)redo log上图是mysql官方文档中提供的InnoDB架构图,左侧是内存架构,右侧则是磁盘架构。本文主要对内存架构简单分析下,下次再说磁盘架构。首先,我们了解一些InnoDB的基础概念:InnoDB中数据从磁盘加载进内存的最小逻辑单位是16kb(16384个字节),叫做“页”(page)。问:就会想为什么这么定义呢?如果一次我只读1kb的数据,那IO时不就浪费了15kb的空间吗?答:这就是预读的思想,它会认为你原创 2020-06-19 15:11:00 · 516 阅读 · 0 评论 -
MYSQL开篇:mysql的体系结构
前言:本文为mysql的开篇文章,后边陆续会写mysql一系列的知识。主要记录了最近一段时间学习的东西并分享给大家。文章目录一条查询语句的执行流程:连接缓存模块(query cache)解析器(parser)预处理器优化器(optimizer)模块分析总结mysql的存储引擎一条查询语句的执行流程:客户端发起连接,首先回去缓存区查询看能否命中,命中则直接返回。没命中进行下一步解析器,解析词法和语法是否有误。无误进行下一步交给预处理器,做语义分析权限处理。然后给优化器,优化器会找到最好的执行计划,原创 2020-06-19 11:36:43 · 291 阅读 · 0 评论 -
一篇整理MYSQL高级函数的文章,先收藏,以便不时之需
文章仅供参考,不包含全部函数文章目录MySQL常用的高级函数(标★号为很常用)1.★★IF(expr,v1,v2):如果表达式 expr 成立,返回结果 v1;否则,返回结果 v2。2.★★IFNULL(v1,v2):如果 v1 的值不为 NULL,则返回 v1,否则返回 v2。3.★★★CASE expression WHEN condition1 THEN result1 ELSE...原创 2019-12-26 11:53:49 · 816 阅读 · 0 评论 -
一篇整理MYSQL常用日期函数的文章,先收藏,以便不时之需
文章仅供参考,不包含全部函数文章目录MySQL常用的日期函数(标★号为很常用)1.ADDDATE(d,n):计算起始日期 d 加上 n 天的日期2.ADDTIME(t,n):时间 t 加上 n 秒的时间3.CURDATE()/CURRENT_DATE():返回当前日期4.CURTIME()/CURRENT_TIME:返回当前时间5.CURRENT_TIMESTAMP():返回当前日期和时间6.★...原创 2019-12-24 17:48:36 · 741 阅读 · 2 评论 -
一篇整理MYSQL常用数字函数的文章,先收藏,以便不时之需
文章目录MySQL常用的数字函数(标★号为很常用)1.ABS(x): 返回 x 的绝对值2.★AVG(expression):返回一个表达式的平均值,expression 是一个字段3.CEIL(x):返回大于或等于 x 的最小整数4.★COUNT(expression):返回查询的记录总数,expression 参数是一个字段或者 * 号或者常量15.FLOOR(x):返回小于或等于 x 的最大...原创 2019-12-24 17:04:01 · 635 阅读 · 0 评论 -
一篇整理MYSQL常用字符串函数的文章,先收藏,以便不时之需
文章目录MySQL常用的字符串函数(标★号为很常用)1.★CHAR_LENGTH(str)返回字符串 str 的字符数2.★CONCAT(s1,s2,...,sn)字符串 s1,s2 等多个字符串合并为一个字符串3.CONCAT_WS(x, s1,s2...sn)合并多个字符串,并添加分隔符4.FIELD(s,s1,s2...)返回第一个字符串 s 在字符串列表(s1,s2...)中的位置5.FI...原创 2019-12-24 16:15:37 · 511 阅读 · 1 评论