数据库MySQL
文章平均质量分 81
数据库
早睡早起啦
感谢关注,csdn已经不上线了,不会在更新了。 csdn都是个人在大二到大四期间学习的笔记,有些内容可能并不是正确的,请理解下,技术文章在掘金(持续更新) https://juejin.cn/user/4248168663101239,如果想咨询up的话技术/生活/未来规划,wx: hakusai22.
展开
-
MySQL进阶学习---MySQL锁问题
MySQL锁问题一. 锁概述二. 锁分类三. 存储引擎对锁的支持情况四. MyISAM 表锁①. 如何加表锁②. 读锁案例1. 准备环境2. 客户端1③. 写锁案例④. 结论⑤. 查看锁的争用情况五. InnoDB 行锁①. 行锁介绍②. 事务及其ACID属性③. 并发事务处理带来的问题④. 事务隔离级别⑤. InnoDB 的行锁模式⑥. 案例准备工作⑦. 行锁基本演示⑧. 无索引行锁升级为表锁⑨. 间隙锁危害⑩. InnoDB 行锁争用情况六. 常用SQL技巧①. SQL执行顺序②. 正则表达式使原创 2021-07-17 21:34:33 · 427 阅读 · 1 评论 -
MySQL进阶学习---内存管理及优化和并发参数调整
内存管理及优化和并发参数调整一. 内存优化原则二. MyISAM 内存优化①. key_buffer_size②. read_buffer_size③. read_rnd_buffer_size三. InnoDB 内存优化①. innodb_buffer_pool_size②. innodb_log_buffer_size四. Mysql并发参数调整①. max_connections②. back_log③. table_open_cache④. thread_cache_size⑤. innod原创 2021-07-17 20:46:26 · 342 阅读 · 1 评论 -
MySQL进阶学习---查询缓存优化
查询缓存优化一. 查询缓存操作流程二. 查询缓存配置①. 查看当前的MySQL数据库是否支持查询缓存②. 查看当前MySQL是否开启了查询缓存③. 查看查询缓存的占用大小④. 查看查询缓存的状态变量:⑤. 开启查询缓存⑥. 查询缓存测试⑦. 查询缓存失效的情况①. SQL 语句不一致的情况②. 当查询语句中有一些不确定的时,则不会缓存。③. 不使用任何表查询语句④. 查询 mysql, information_schema或 performance_schema 数据库中的表时,不会走查询缓存。⑤. 所原创 2021-07-17 20:29:58 · 129 阅读 · 0 评论 -
数据库基础知识---主键和索引的关系
主键和索引的关系一. 主键二. 索引三. 主键和索引总结一. 主键主键的唯一作用就是唯一标识表中的某一行数据。 分为单一主键和联合主键单一主键:只用一列就能唯一标识一行。联合主键:当使用一列已经不能唯一标示一行的时候,就要采用多列唯一标识一行,就是联合主键。二. 索引索引的作用就是提高数据的检索速度。分为单一索引和联合索引:单一索引:只是用某一列数据作为索引,默认是index索引,这一列可以包含重复数据;如果某一列不存在重复数据最好设置成unique形式的索引,比in原创 2021-07-17 15:39:38 · 1780 阅读 · 0 评论 -
MySQL进阶学习---优化SQL(三)_SQL优化案列
优化SQL一. 大批量插入数据_优化①. 环境搭建②. 主键顺序插入_优化速度③. 插入ID顺序排列数据④. 插入ID无序排列数据⑤. 关闭唯一性校验⑥. 手动提交事务二. 优化insert语句三. 优化order by语句①. 环境准备②. FileSort 排序③. using index③. 多字段排序④. Filesort 的优化1. 两次扫描算法2. 一次扫描算法3. sort_buffer_size 和 max_length_for_sort_data 系统变量四. 优化group by原创 2021-07-16 23:28:28 · 129 阅读 · 0 评论 -
MySQL进阶学习---优化SQL(二)_索引
索引的使用一. 验证索引提升查询效率二. 索引的使用_准备环境三. 避免索引失效①. 全值匹配 ,对索引中所有列都指定具体值②. 最左前缀法则_走索引③. 违反最左前缀法则 , 索引失效④. 范围查询右边的列,不能使用索引⑤. 不要在索引列上进行运算操作, 索引将失效⑥. 字符串不加单引号,造成索引失效⑦. 尽量使用覆盖索引,避免select *⑧. 如果查询列,超出索引列,也会降低性能。⑨. 用or分割开的条件⑩. 以%开头的Like模糊查询,索引失效十一. 如果MySQL评估使用索引比全表更慢原创 2021-07-16 22:31:47 · 337 阅读 · 1 评论 -
MySQL进阶学习---优化SQL(一)_SQL分析
优化SQL一. 查看SQL执行频率二. 定位低效率执行SQL①. 慢查询日志②. show processlist三. explain分析执行计划①. 创建万级数据②. 查询SQL语句的执行计划③. explain 分析每个字段环境准备④. explain 之 id1. id 相同表示加载表的顺序是从上到下2. id 不同id值越大,优先级越高,越先被执行3. id 有相同,也有不同,同时存在⑤. explain 之 select_type⑥. explain 之 table⑦. explain原创 2021-07-16 21:38:18 · 193 阅读 · 1 评论 -
MySQL进阶学习---存储引擎
存储引擎一. MySQL的体系结构概览①. 连接层②. 服务层③. 引擎层④. 存储层二. 存储引擎①. 存储引擎概述②. 各种存储引擎特性1. InnoDB1.1. 事务控制1.2. 外键约束1.4. 存储方式2. MyISAM2.1. 不支持事务2.2. 文件存储方式3. MEMORY4. MERGE一. MySQL的体系结构概览整个MySQL Server由以下组成Connection Pool : 连接池组件Management Services & Utilities原创 2021-07-15 22:54:08 · 132 阅读 · 1 评论 -
MySQL日志分析---重做日志(redo log),回滚日志(undo log),以及二进制日志(binlog)
MySQL日志分析日志文件类型①. 错误日志(error log)②. 慢查询日志(slow log)日志文件类型错误日志(error log):记录mysql服务的启停时正确和错误的信息,还记录启动、停止、运行过程中的错误信息。一般查询日志(general log):记录建立的客户端连接和执行的语句。二进制日志(bin log):记录所有更改数据的语句,可用于数据复制。慢查询日志(slow log):记录所有执行时间超过long_query_time的所有查询或不使用索引的查询。中继日志(r原创 2021-04-27 15:36:34 · 266 阅读 · 1 评论 -
数据库基础知识---MySQL间隙锁(Gap Lock)
MySQL间隙锁一. 间隙锁的概念二. 间隙锁的产生三. 间隙锁的作用①. 防止幻读②. 防止数据误删/改三.使用间隙锁的隐患MySQL InnoDB支持三种行锁定方式:行锁(Record Lock):锁直接加在索引记录上面。间隙锁(Gap Lock):锁加在不存在的空闲空间,可以是两个索引记录之间,也可能是第一个索引记录之前或最后一个索引之后的空间。Next-Key Lock:行锁与间隙锁组合起来用就叫做Next-Key Lock。一. 间隙锁的概念当我们用范围条件(between)而不原创 2021-04-26 16:31:24 · 3409 阅读 · 6 评论 -
数据库基础知识---B+树和B树的区别
B+树和B树的区别 B+树和B树的区别:B+树的非叶子节点上是不存储数据的,而B树节点不仅存储数据还存在键值。B+树的中间节点不保存数据,所以磁盘页能容纳更多节点元素,因此整个树是矮胖。对于范围查找来说,B+树只需遍历叶子节点链表即可,B树却需要重复地中序遍历。B+树中所有叶子节点都是通过指针连接在一起,因此对整棵树的遍历只需要一次线性遍历叶子节点即可。B+树的优点:B+树非叶子节点上不包含数据信息,这样,内存页中能够存放更多的key,数据存放的更加紧密。一是可以降低树的原创 2021-04-26 15:28:51 · 732 阅读 · 0 评论 -
数据库基础知识---MySQL的InnoDB—B+树和索引
MySQL的InnoDB索引—B+树一. 索引相关算法简单介绍①. 二分查找②. 二叉(查找)树③. 平衡二叉树④. B 树(B-树 )⑤. B+树⑥. B*树二. InnoDB的B+树索引①. 聚集索引②. 非聚集索引③. 联合索引④. Cardinality一. 索引相关算法简单介绍①. 二分查找如果不考虑查找算法,索引键值可以以数组或者链表的数据结构来保存。为了查找更快,我们进一步将索引值按字典顺序保存。这样我们就可以采用二分法快速查找。二分查找法首先需要将数据按顺序排列。先用查找的值原创 2021-03-09 17:28:23 · 237 阅读 · 1 评论 -
数据库基础知识---MySQL常见的三个存储引擎
Mysql引擎有哪些一. Mysql引擎简介二. MyISAM三. InnoDB①.InnoDB存储引擎简单介绍②. MVCC(Multi-Version Concurrency Control)③. InnoDB锁类型④. InnoDB有三种行锁的算法⑤. Innodb后台线程⑥. 日志四. Memory五. Archive一. Mysql引擎简介数据库管理系统(DBMS)使用数据引擎进行创建、查询、更新和删除数据操作。不同的存储引擎提供不同的存储机制、索引技巧、锁定水平等功能,使用不同的存储引擎,原创 2021-03-09 16:20:18 · 169 阅读 · 0 评论 -
数据库基础知识---索引是什么? 有什么优缺点?
索引是什么? 有什么优缺点?一. 索引是什么?二. 索引的优点三. 索引的优点一. 索引是什么?数据库索引是:数据库索引就像是一本书的目录一样,使用它可以让你在数据库里搜索查询的速度大大提升。而我们使用索引的目的就是,加快表中的查找和排序。索引是帮助MySQL高效获取数据的排好序的数据结构(索引存储在文件里索引结构(索引底层的数据结构)( 二叉树,红黑树, Hash, B-树)索引的几种类型分别是普通索引、唯一索引、聚集索引、主键索引、全文索引几种。二. 索引的优原创 2021-03-09 15:18:29 · 356 阅读 · 0 评论 -
数据库基础知识---MySQL锁机制
数据库锁机制一. 悲观锁二. 乐观锁三. Mysql InnoDB引擎的锁机制(属于悲观锁)四. MVCC(数据多版本并发控制,属于乐观锁)五. Mysql(Innodb引擎)的一些默认机制六.数据库的事务隔离级别操作一. 悲观锁悲观锁总是假设最坏的情况,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会阻塞直到它拿到锁(共享资源每次只给一个线程使用,其它线程阻塞,用完后再把资源转让给其它线程)。传统的关系型数据库里边就用到了很多这种锁机制,比如行锁,原创 2021-03-07 21:52:39 · 302 阅读 · 0 评论 -
数据库基础知识---MySQL隔离级别
数据库事务隔离机制一. 事务并发时会发生的问题二. 四种事务隔离机制介绍三. Read Uncommitted(读未提交)四. Read Committed(读已提交)五. Repeatable Read(可重复读)六. Serializable(串行化)一. 事务并发时会发生的问题脏读脏读是指在一个事务处理过程里读取了另一个未提交的事务中的数据。不可重读不可重复读是指在对于数据库中的某个数据,一个事务范围内多次查询却返回了不同的数据值,这是由于在查询间隔,被另一个事务修改并提交了。原创 2021-03-07 17:34:55 · 162 阅读 · 1 评论