
mysql
pl在之心
立足当下
展开
-
mysql 概念
1. 回表1)使用聚簇索引查询只需要查询一次 (叶子节点有该行数据)2) 使用覆盖索引查询,也只需要查询一次,无需回表3) 使用普通索引查询非索引字段,需要回表查询多次2.聚簇索引和覆盖索引1) 主键默认使用聚簇索引2) 没有主键的唯一索引也会使用聚簇索引3) 覆盖索引用于减少磁盘访问次数,避免回表查询3. 最左前缀列联合索引[A,B] 生效需要先使用...原创 2020-01-17 15:33:15 · 172 阅读 · 0 评论 -
mysql 高效的索引策略
1. 索引列独立使用,避免使用函数例如 where to_char(xx,xx)=xx2. 索引选择性尽量大一些索引选择性=不重复的索引值和总记录的比值,返回在0到1之间尽量选择接近1的列建立索引,例如性别 sex不适合作为索引,因为它本身就只有两种可能性,索引选择性很低3. 避免给很长的列建索引1) 索引本身也需要占用空间2) 列很长,查询的效...原创 2020-01-17 11:32:22 · 164 阅读 · 0 评论 -
Mysql InnoDB支持哈希索引吗
1. 问题Mysql InnoDB支持哈希索引吗上图可以看出: InnoDB使用哈希索引来实现自适应哈希索引功能2. 描述InnoDB引擎有一个页数的功能叫做自适应哈希索引。当InnoDB注意到某些索引值被使用非常频繁的时候,它会在内存中基于B-Tree索引之上再创建一个哈希索引,使得B-Tree索引也具有哈希索引的优点。这是一个完全自动,内部的行为,无法进行...原创 2020-01-17 10:46:58 · 605 阅读 · 0 评论 -
压测时出现mysql数据库无法获取连接问题
1. 背景压测时出现mysql数据库无法获取连接问题2. 查找原因查看最大连接数 show variables like 'max_connections';查看当前连接情况show full processlist发现测试环境配置的最大连接数为150,而压测服务器使用3台机器,每台最大100个连接,超过最大连接数,导致无法获取新的连接3. 解决mysql...原创 2019-12-11 10:58:40 · 707 阅读 · 0 评论 -
一条查询语句mysql 源代码的路径
一条查询语句在mysql 源代码的执行路径使用mysql数据库已经有好几年的时间,一直没有时间去研究mysql的内部执行过程,只能通过一些固定的思维导向和理论去猜测问题出现的缘由,最近有时间探查一下mysql的源码。main方法mysql的启动方法也是main方法,并非用java语言编写,而是c和c++语言编写的。一条查询语句大概会经过下面几个模块的处理:网络连接监听;线程池处理请...原创 2019-11-20 14:07:10 · 417 阅读 · 0 评论 -
Mysql查询语句正则匹配
1.前言 最近遇到MySQL模糊查询的问题,发现MySQL也支持正则表达式。其中,like语句是完全匹配,regexp是部分匹配。2.完全匹配like2.1 like模糊查询 like支持的正则包括%和_。其中%代表任意个字符,_代表任意一个字符。2.2 常用方式 _使用 select * from user where name like '张_林';代表查询user表中n原创 2016-12-18 14:52:18 · 3307 阅读 · 0 评论 -
MySQL常用对象
1.前言 MySQL常用的对象有数据库,表,索引,存储过程,触发器,视图,约束等,数据库和表就不说了,我们来看下索引,存储过程,触发器,视图和约束2.简介2.1 存储过程 2.1.1什么是存储过程 存储过程就是可以把多个sql语句组合起来,写出类似函数的脚本,然后使用 call 存储过程名 来调用 2.1.2怎么创建存储过程? CREATE PROCEDURE tes原创 2016-12-20 13:11:59 · 1315 阅读 · 0 评论 -
Mysql总结
1.详解 MySql InnoDB 中的三种行锁(记录锁、间隙锁与临键锁)(转)2. Mysql explain详解(转)3. Msql 底层数据结构B+树(转)4. InnoDB引擎与MyIsam引擎的区别5. Mysql binlog日志 (数据恢复,主从同步复制)(转)6. Mysql主从同步原理(转)7. 主键索引与普通索引的区别8. 事务隔离级别9. ...原创 2019-08-13 14:36:20 · 105 阅读 · 0 评论