mysql
文章平均质量分 84
栋幺栋幺-
没事早点睡,有空多赚钱,平时勤读书
展开
-
mysql部分特性
Mvcc和Redolog和Undolog以及Binlog有什么不同 1\. MVCC MVCC多版本并发控制是MySQL中基于乐观锁理论实现隔离级别的方式,用于读已提交和可重复读取隔离级别的实现。在MySQL中,会在表中每一条数据后面添加两个字段,最近修改该行数据的事务ID,指向该行(undolog表中)回滚段的指针。 Read View判断行的可见性,创建一个新事务时,copy一份当前系统中的活跃事务列表。意思是,当前不应该被本事务看到的其他事务id列表。原创 2022-11-11 10:55:12 · 534 阅读 · 0 评论 -
mysql查询优化
优化一般性流程 1. 观察。至少跑一天,看看生产的慢sql 2. 开启慢查询日志,设置阙值,比如超过5s的就是慢sql,将它竹取出来 3. explain + 慢sql分析 4. show profile 5. 运维经理 or DBA,进行数据库服务器的参数调优 总结 1. 慢查询的开启并捕获 2. expain + 慢SQL分析 3. show profile查询SQL在MySQL服务器里的执行细节和生命周期情况原创 2022-11-11 10:54:49 · 584 阅读 · 0 评论 -
mysql的redo和undo-log
redo日志 redo 日志格式 redo 日志本质上只是记录了一下事务对数据库做了哪些修改 各个部分的详细释义如下: - type :该条 redo 日志的类型。在 MySQL 5.7.21 这个版本中,设计 InnoDB 的大叔一共为 redo 日志设计了53种不同的类型,稍后会详细介 绍不同类型的 redo 日志。原创 2022-11-11 10:53:50 · 460 阅读 · 0 评论 -
避免递归查询的树数据表设计与实现
场景描述 通常树形结构的存储,是在子节点上存储父节点的编号来确定各节点的父子关系,例如这样的组织结构: 与之对应的表数据(department):原创 2022-11-11 10:51:09 · 108 阅读 · 0 评论 -
数据表中存树相关查询
mysql中从子类ID查询全部父类(作无限分类常常用到) 因为mysql 不支持相似 oracle with ...connect的 递归查询语法 以前一直觉得相似的查询要么用存储过程要么只能用程序写递归查询.mysql 如今发现原来一条sql语句也是能够搞定的sql 先来看数据表的结构以下: ```sql id name parent_id --------------------------- 1 Home 0原创 2022-11-11 10:45:51 · 133 阅读 · 0 评论 -
mysql是怎么运行的-笔记
启动MySQL服务器程序 1.3.1 UNIX里启动服务器程序在类 UNIX 系统中用来启动 MySQL 服务器程序的可执行文件有很多,大多在 MySQL 安装目录的 bin 目录下,我们 一起来原创 2022-11-10 11:32:29 · 3764 阅读 · 0 评论 -
mysql为什么使用B+树
B-树、B+树、红黑树,都是平衡查找树,那么查询效率上讲,平均都是O(logn)。使用什么哪种数据结构,肯定是出于提高数据库的查询效率的考虑原创 2022-11-10 11:27:33 · 107 阅读 · 0 评论 -
mysql锁
锁是计算机协调多个进程或县城并发访问某一资源的机制。在数据库中,除传统的计算资源(如CPU、RAM、I/O等)的争用之外,数据也是一种供许多用户共享的资源。如何保证数据并发访问的一致性、有效性是所有数据库必须解决的一个问题,锁冲突也是影响数据并发访问性能的一个重要因素。从这个角度来说,锁对数据库显得尤为重要,也更复杂原创 2022-11-10 11:25:46 · 177 阅读 · 0 评论 -
mysql索引
索引是一种特殊的文件(InnoDB数据表上的索引是表空间的一个组成部分),它们包含着对数据表里所有记录的引用指针。更通俗的说,数据库索引好比是一本书前面的目录,能加快数据库的查询速度。索引的目的在于提高查询效率,可以类比字典,如果要查“mysql”这个单词,我们肯定需要定位到m字母,然后从下往下找到y字母,再找到剩下的sql。如果没有索引,那么你可能需要把所有单词看一遍才能找到你想要的。除了词典,生活中随处可见索引的例子,如火车站的车次表、图书的目录等。它们的原理都是一样的,原创 2022-11-09 14:05:20 · 243 阅读 · 0 评论 -
mysql如何保证数据不丢的
MySQL的逻辑架构大致可以分为三层:第一层:处理客户端连接、授权认证,安全校验等。第二层:服务器server层,负责对SQL解释、分析、优化、执行操作引擎等。第三层:存储引擎,负责MySQL中数据的存储和提取。Mysql数据更新流程,上边这张图,她是MySQL更新数据的基础流程,其中包括redo log、bin log、undo log三种日志间的大致关系原创 2022-11-08 15:36:21 · 348 阅读 · 0 评论 -
mysql主从复制
slave会从master读取binlog来进行数据同步。主从都配置在[mysqld]节点下,都是小写。mysql版本一致且后台以服务运行原创 2022-11-08 15:17:32 · 265 阅读 · 0 评论 -
避免递归查询的树数据表设计与实现
要想查出所有子孙部门,只要查左值在 被查寻部门的左\右数之间的节点,查出来都是他的子节点。例如:查询行政总监的所有子部门,行政总监的左右数是9和18,因此只需要用9和18做lft字段的between查询,查询出的结果就是【被查部门本身数据和所有子孙部门】;我们从根节点开始,给董事长左值设为1,下级部门总经理左值设为2,以此类推地沿着边缘开始遍历,给每个节点加上左值,遇到叶子节点处给节点加上右值,再继续向上沿着边缘继续遍历,遍历结束回到根节点右侧,你将得到类似这样的结构。原创 2022-11-05 21:46:14 · 212 阅读 · 0 评论