Mysql
Mysql相关
啦啦啦咯咯咯
一个默默学习的小程序员
展开
-
记录锁,间隙锁,插入意向锁,临键锁兼容关系
mysql锁原创 2023-02-17 13:50:46 · 1341 阅读 · 0 评论 -
数据库索引的原理,为什么要用 B+树,为什么不用二叉树
可以从几个维度去看这个问题,查询是否够快,效率是否稳定,存储数据多少,以及查找磁盘次数,为什么不是二叉树,为什么不是平衡二叉树,为什么不是 B 树,而偏偏是 B+树呢?为什么不是一般二叉树?如果二叉树特殊化为一个链表,相当于全表扫描。平衡二叉树相比于二叉查找树来说,查找效率更稳定,总体的查找速度也更快。为什么不是平衡二叉树呢?我们知道,在内存比在磁盘的数据,查询效率快得多。如果树这种数据结构作为索引,那我们每查找一次数据就需要从磁盘中读取一个节点,也就是我们说的一个磁盘块,但是平衡二叉树可原创 2022-01-17 14:22:03 · 981 阅读 · 1 评论 -
Mysql主从复制操作
1. 复制原理:2. 主机修改my.ini配置文件3. 从机修改my.cnf配置文件4. 重启两个数据库5. 主机从机关闭防火墙6. 在主机上建立账户并授权slave7. 从机上配置需要复制的主机8. 测试主机上创建库,创建表,插入数据从机上查询:9. 停止复制功能10. 注意点:...原创 2021-01-15 14:42:48 · 60 阅读 · 0 评论 -
Mysql之锁机制(表锁,行锁,间隙锁)详解
1. 锁定义:2. 锁分类2.1 对数据的操作类型分类2.2 对数据的操作粒度分类对数据的操作粒度分类:表锁和行锁2.2.1 表锁1. 特点2. 加读锁:3. 加写锁4. 结论5. 表锁的分析2.2.2 行锁1. 特点:InnoDB和MyISAM的不同:2. 事务ACID:3. 并发事务带来的问题4. 事务的隔离级别5. sql演示6. 索引失效会导致行锁变表锁正常来说一个更新41,一个更新9记录,是互不影响,但是原创 2021-01-15 10:33:39 · 476 阅读 · 0 评论 -
Mysql之全局查询日志使用
注意:不要在生产环境开启这个功能配置启用:编码启用使用:原创 2021-01-15 08:46:08 · 51 阅读 · 0 评论 -
Mysql批量插入数据函数和存储过程使用
函数有返回值,存储过程没有返回值。1. 创建表2. 创建函数2.1 随机产生字符串2.2 随机产生部门编号3. 创建存储过程3.1 emp表批量插入数据的存储过程3.2 往dept插入数据的存储过程4. 执行存储过程delimiter;表示以;为结束执行完一条语句...原创 2021-01-14 17:55:31 · 302 阅读 · 0 评论 -
mysql之Profile的使用
1. profile定义2. mysql是否支持profileshow VARIABLES like 'profiling' 是否支持set profiling=on 开启3. 开启功能4. 执行完sql后,查看结果show profiles 默认只保存15条记录show profile cpu,block io for query 3 可以查看一条sql的完整生命周期4.1 主要关注这四个值:...原创 2021-01-14 17:55:15 · 150 阅读 · 0 评论 -
Mysql之慢查询的使用
1. 慢查询2. 默认是没有开启慢查询的3. 查看是否开启以及如何开启show VARIABLES like "%slow_query_log%"set GLOBAL slow_query_log=14. 什么样的sql才会记录到慢查询内?show VARIABLES like "%long_query_time%"set global long_query_time=35. 记录慢查询后续分析查询超过3s的sql就会记录到日志里面,就可以重点分析哪些需要的sq原创 2021-01-14 17:06:24 · 130 阅读 · 0 评论 -
Mysql查询优化之in和exists优化和order by优化
in和exists优化order by 优化分析:结论:提高order by的速度总结a in相当于范围查询,b,c就不能使用索引进行排序group by 优化原创 2021-01-14 16:30:22 · 249 阅读 · 0 评论 -
Mysql索引的一些注意事项sql分析
1. 建表2。 几组sql的explain分析:order by排序 group by分组在c1,c2,c3,c4建立符合索引。如下图:查询顺序1243,4321都可以使用到索引,因为mysql优化器,会优化我们的sql,会对sql进行重新排序如下图:使用到了3个索引,范围后全失效如下图:还是使用到了4个索引order by如下图:用到了2个索引,虽然c3没有查询,但是用到了排序上如下图:只是用到了2个索引,出现了filesort,c4排序未使用到索引,缺了原创 2021-01-14 14:48:29 · 75 阅读 · 0 评论 -
Mysql引起索引失效的条件
建表和建立符合索引:10条索引失效2.1 全职匹配和最左前缀法则都使用到了索引用不到索引如果只用age,pos,age和pos则使用不到索引,因为违背了最左前缀法则部分使用到了索引,因为如果都使用到了索引,ke_len要为78,ref要为const,const.如果使用name,pos,就是索引的第一个字段存在,是部分到索引的。1.从最左开始,建立的第一个索引不能丢失。2.中间的字段也不能断。口诀(带头大哥不能死,中间兄弟不能断)2.2 不能再索引列上做任何操作原创 2021-01-14 09:35:59 · 177 阅读 · 0 评论 -
单表,双表,三表索引explain优化案例
1. 单表索引优化案例1.1 建表:1.2 理论:1.3 实战:调优前的explain:优化后的explain:(建立3个字段的联合索引,有用到索引,但是还是有using filesort)继续优化后的explain:建立2个字段的联合索引,达到了效果2. 两表优化案例2.1 建表:2.2 理论:2.3 实战左连接索引建在右表左连接索引建在左表结论:左连接索引设置在右表上3. 三表优化案例3.1 建表3.2 理论3.3 实战原创 2021-01-13 15:54:45 · 100 阅读 · 0 评论 -
Mysql之Explain详解(最全)
概念:能干嘛:使用:explain+sql 语句字段解释:1. id (可以查看表的读取顺序)2. select_type (数据读取操作的操作类型)两个表union操作就会出现union result操作。3. table 显示这一行的数据是关于那张表的4.type(重要)4.1 system,const4.2 eq_ref 刚好只有一条记录匹配4.3 ref 匹配单个值的所有行4.4 range4.5 index4.6 all原创 2021-01-13 15:01:40 · 315 阅读 · 0 评论 -
Mysql分区和索引记录
分区用create_date创建分区,需要把create_date设置为主键所以,首先,建id和create_date的联合主键CREATE TABLE `t_service_object` ( `id` varchar(64) NOT NULL, `type` int(1) DEFAULT NULL COMMENT '类型 1 服务 2 包 3 类 4 方法', `object_name` varchar(255) DEFAULT NULL COMMENT '名称', `pare原创 2021-01-12 08:57:35 · 235 阅读 · 0 评论