![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
MySQL
文章平均质量分 96
MySQL
bubble小拾
梦想不止于编程,行动才是起点
展开
-
MySQL 8.0新特性详解
从上图可以看出SQL及索引的优化效果是最好的,而且成本最低,所以工作中我们要在这块花更多时间。配置文件my.ini(windows)或my.cnf(linux)的全局参数:下面参数都是服务端参数,默认在配置文件的 [mysqld] 标签下连接的创建和销毁都需要系统资源,比如内存、文件句柄,业务说的支持多少并发,指的是每秒请求数,也就是QPS。一个连接最少占用内存是256K,最大是64M,如果一个连接的请求数据超过64MB(比如排序),就会申请临时空间,放到硬盘上。原创 2024-06-28 00:12:19 · 731 阅读 · 0 评论 -
[MySQL] Innodb底层原理与MySQL日志机制深入剖析
注意:如果要恢复大量数据,比如程序员经常说的删库跑路的话题,假设我们把数据库所有数据都删除了要怎么恢复了,如果数据库之前没有备份,所有的binlog日志都在的话,就从binlog第一个文件开始逐个恢复每个binlog文件里的数据,这种一般不太可能,因为binlog日志比较大,早期的binlog文件会定期删除的,所以一般不可能用binlog文件恢复整个数据库的。redo log 从头开始写,写完一个文件继续写另一个文件,写到最后一个文件末尾就又回到第一个文件开头循环写,如下面这个图所示。原创 2024-06-27 00:10:19 · 1395 阅读 · 0 评论 -
MySQL的内部组件结构
大体来说,MySQL 可以分为 Server 层和存储引擎层两部分。原创 2024-06-26 23:25:20 · 756 阅读 · 0 评论 -
MySQL锁机制详解与优化、MVCC底层原理剖析
MyISAM在执行查询语句SELECT前,会自动给涉及的所有表加读锁,在执行update、insert、delete操作会自动给涉及的表加写锁。InnoDB在执行查询语句SELECT时(非串行隔离级别),不会加锁。但是update、insert、delete操作会加行锁。读锁会阻塞写,但是不会阻塞读写锁则会把读和写都阻塞Innodb存储引擎由于实现了行级锁定,虽然在行锁定机制的实现方面所带来的性能损耗可能比表级锁定会要更高一下,但是在整体并发处理能力方面要远远优于MYISAM的表级锁定的。原创 2024-06-25 23:07:33 · 903 阅读 · 0 评论 -
MySQL事务原理与最佳优化实践、MVCC
数据库一般都会并发执行多个事务,多个事务可能会并发的对相同的一批数据进行增删改查操作,可能就会导致我们说的脏写、脏读、不可重复读、幻读这些问题。这些问题的本质都是数据库的多事务并发问题,为了解决多事务并发问题,数据库设计了事务隔离机制、锁机制、MVCC多版本并发控制隔离机制、日志机制,用一整套机制来解决多事务并发问题。原创 2024-06-24 22:15:25 · 1172 阅读 · 0 评论 -
MySQL总结-索引优化实战详解二
1.字段有索引:count(*)≈count(1)>count(字段)>count(主键 id)2.字段无索引:count(*)≈count(1)>count(主键 id)>count(字段)原创 2024-06-23 10:00:00 · 1181 阅读 · 0 评论 -
MySQL-文件排序原理详解
MySQL 通过比较系统变量 max_length_for_sort_data(默认1024字节) 的大小和需要查询的字段总大小来判断使用哪种排序模式。原创 2024-06-22 10:30:00 · 953 阅读 · 0 评论 -
MySQL慢查询资料详解
这个是由参数long_query_time控制,默认情况下long_query_time的值为10秒,可以使用命令修改,也可以在my.cnf参数里面修改。如上所示,修改了变量long_query_time,但是查询变量long_query_time的值还是10,难道没有修改到呢?log_output='TABLE'表示将日志存入数据库,这样日志信息就会被写入到mysql.slow_log表中。具体环境中,运行时间超过long_query_time值的SQL语句,则会被记录到慢查询日志中。原创 2024-06-21 22:33:02 · 652 阅读 · 0 评论 -
MySQL总结-索引优化实战详解一
1、MySQL支持两种方式的排序filesort和index,Using index是指MySQL扫描索引本身完成排序。index效率高,filesort效率低。2、order by满足两种情况会使用Using index。order by语句使用索引最左前列。使用where子句与order by子句条件列组合满足索引最左前列。3、尽量在索引列上完成排序,遵循索引建立(索引创建的顺序)时的最左前缀法则。4、如果order by的条件不在索引列上,就会产生Using filesort。原创 2024-06-20 23:47:29 · 842 阅读 · 0 评论 -
[MySQL总结] Explain详解、索引最佳优化
like KK%相当于=常量,%KK和%KK% 相当于范围。原创 2024-06-18 23:03:55 · 1197 阅读 · 0 评论 -
MySQL索引底层数据结构与算法、存储引擎
所以当树高为3时,B+Tree大概可以存储2千万+的数据【1170*1170*16=21902400】,所以在此情况下,查询任意数据最多只需要访问磁盘IO h次(h是树的高度)。红黑树是一棵二叉搜索树,其中每个节点的左子树的关键字都小于节点自身的关键字,右子树的关键字都大于节点自身的关键字。根节点是二叉树中第一个添加的数据,它是整个树的起点,小于根节点的值放在左子节点,大于根节点的值放在右子节点。B+树的非叶子节点仅存储关键字和子节点的指针,所有的数据存储在叶子节点上,并通过链表连接;原创 2024-06-17 22:03:50 · 888 阅读 · 0 评论