
Mysql 数据库
文章平均质量分 52
Mysql 数据库的原理和使用技巧
珞珈山紫竹
希望用最简单的语言去阐释研发
展开
-
Having 的用法
Having 主要用于group by 分组之后 对聚合条件的选择下面的示例按产品 ID 对 SalesOrderDetail 进行了分组,并且只包含那些订单合计大于 $1,000,000 且其平均订单数量小于 3 的产品组。SELECT ProductID, AVG(OrderQty) AS AverageQuantity, SUM(LineTotal) AS TotalFROM Sales.SalesOrderDetailGROUP BY ProductIDHAVING SUM(原创 2022-02-17 10:41:16 · 404 阅读 · 0 评论 -
B树和B+树的不同
B+和B树本质上的不同B树每个节点会存值和指针,所以一个节点的关键字=孩子树-1(关键字隔离出来的缝就是子树的索引)B+ 树非叶子结点只存储指针,所有关键字都存储在叶子结点上,也叶子结点之间有前后指针相连(每一阶都需要一次磁盘IO,所以树越矮越好)理论上不同1、中间结点不存储关键字所以树更矮胖2、B+ 树查询必须查到叶子结点,B树不会直接查找到叶子结点,因此b+树查找更稳定3、对于范围查找,b+树只需遍历叶子结点链表,b树却需要重复中序遍历https://www.cnblogs.com/xu原创 2022-01-17 15:31:16 · 245 阅读 · 0 评论 -
分库分表的业务
垂ccc彻底搞清分库分表(垂直分库,垂直分表,水平分库,水平分表)_传智燕青-优快云博客_分库分表分库分表的基本原理_一群专业码农的笔记本-优快云博客_分库分表原理...原创 2021-12-27 18:27:52 · 116 阅读 · 0 评论 -
两个有序数组求中位数的三种解法
寻找两个有序数组的中位数(附上三种解法)_BoCong-Deng的博客-优快云博客_两个有序数组求中位数原创 2021-12-27 16:36:20 · 432 阅读 · 0 评论 -
mysql 数据库事务和相应的解决方法
事务ACID理解_dengjili的专栏-优快云博客_acid事务管理(ACID)谈到事务一般都是以下四点原子性(Atomicity) 原子性是指事务是一个不可分割的工作单位,事务中的操作要么都发生,要么都不发生。 一致性(Consistency) 事务前后数据的完整性必须保持一致。 隔离性(Isolation) 事务的隔离性是多个用户并发访问数据库时,数据库为每一个用户开启的事务,不能被其他事务的操作数据所干扰,多个并发事务之间要相互隔...https://blog.youkuaiyun.com/dengjili/原创 2021-12-07 11:16:23 · 633 阅读 · 0 评论 -
sql 的优化
union 去重两表合并 union all 不去重两表合并15 种 SQL 优化中,老司机才懂的处理技巧原创 2021-11-23 09:41:16 · 434 阅读 · 0 评论 -
数据库的三范式
第一范式: 数据的原子性(列的概念不可再分)第二范式: 行有唯一键(每一行必须有一个唯一属性,其他属性依赖这一属性)第三范式:依赖不应该具有传递性,一行不能依赖除了主键外的其他行数据库三大范式_凉亭的博客-优快云博客_数据库三范式...原创 2021-11-22 14:50:38 · 214 阅读 · 0 评论 -
Mysql 中MVCC 设计方式
是什么?多版本并发控制作用是什么?在并发场景下,使用不加锁或者乐观锁的思想去解决读和写的关系,使提高读的效率和又控制了写时的并发问题。核心思想是:读是快照读,写是通过undo log 记录版本链。当前读和快照读?当前读:像select lock in share mode(共享锁),select for update ; update; insert; delete(排它锁),这些操作都是一种当前读,她读取的事记录的最新版本,读取时还要保证其他并发事务不能修改当前记录,会原创 2021-09-29 15:16:53 · 162 阅读 · 0 评论 -
Mysql 数据库的隔离级别
Mysql 数据库会出现的事务问题脏读在事务A修改数据之后提交数据之前,这时另一个事务B来读取数据,读到的是A修改后的数据,而之后A由于回滚或者修改数据再提交,则B读到的就是脏数据。不可重复读一个事务在读取某些数据后的某个时间,再次读取以前的数据,却发现数据已经发生了变更,或者某些数据已经被删除了。幻读:事务A在按查询条件读取某个范围的记录时,事务B又在该范围内插入了新的满足条件的记录,事务A 再次按条件查询记录,会产生新的满足条件的记录。不可重复读和幻读的区别: 不原创 2021-09-28 00:28:07 · 304 阅读 · 1 评论 -
Mysql 中的三种常见的日志 redo log undo log binlog
Mysql 中的三种常见的日志 redo log 重做日志,undo log 回滚日志 ,binlog 二进制日志Redo log 日志 undo log 都是用来操作事务的,mysql中只有InnoDB可以操作事务,所以这两个日志应该是InnoDB独有日志方式。Binlog 是执行器用来记录逻辑操作的操作的二进制日志。Redo log 操作执行于事务操作之后,提交之前,要么不执行,执行就会被记录,所以数据库在发生故障时可以使用redo log 恢复。Redo log 大小固定,记录满了以后就从头循原创 2021-09-26 23:19:26 · 213 阅读 · 0 评论 -
Mysq 几种索引的不同
常用的索引有4个 FULLTEXT, HASH, BTREE,RTREE索引的作用就是通过一种算法,避免全表扫描,从而快速定位数据的位置。FULLTEXT 全文索引,目前只有MyISAM 引擎支持,只可以在CHAR,VARCHAR,TEXT列上可以创建全文索引,全文索引是通过分词策略创建的一种索引模式。HASH 通过hash算法形成键值对,如果函数映射,所以hash很适合做索引,为某一列或者几列建立hash索引,就会利用这一列或者几列的值通过一定的算法算出一个hash值,对应一行或者..原创 2021-09-24 14:09:41 · 108 阅读 · 0 评论 -
mysql 的内部结构
连接器(Connectors)就是类似JDBC这种数据库接口层连接池 数据库内置用来和客户端构建连接的工具SQL接口层:用来接收客户端发过来的sql语句。分析器: 将sql 拆解为数据库能够读懂的程序片段优化器: 选择更快的索引以最小的内存,最小CPU的消耗执行sql语句。缓存:将数据存在内存中。存储引擎:提供不同的存储机制、索引技巧、锁定水平、的程序组件。常见的4个存储引擎:MyISAM、Memory、InnoDB、Archive各自不同的特点。...原创 2021-09-23 09:35:53 · 300 阅读 · 0 评论