数据库
文章平均质量分 58
数据库中的理论和实践
追風者0x8ffd98a8
只想见见天地。
展开
-
事务隔离的实现原理
事务隔离的实现原理前置知识事务隔离级别实现读未提交读已提交可重复读串行化前置知识针对于事务隔离的具体原理需要了解一些概念和知识。首先 MySQL 的每条记录都会有两个隐藏字段,row_trx_id(事务 id)和roll_pointer(回滚指针)。row_trx_id 会记录当前记录被哪条事务所更改/创建,记录事务的 id。roll_pointer 会记录上一版本的数据的地址。进行数据更改时,会记录三个日志文件:redo log 解决数据库宕机重启丢失数据的问题。binlog 用于主从复制原创 2022-03-01 12:25:17 · 474 阅读 · 0 评论 -
MySQL 事务隔离级别
MySQL 事务隔离级别事务性质并发场景的问题四大隔离级别事务性质事务有四大特性(ACID):原子性(Atomicity): 事务作为一个整体被执行,要么全部执行,要么全不执行。一致性(Consistency): 指在事务开始之前和事务结束以后,数据不会被破坏。隔离性(Isolation): 多个事务并发访问时,事务之间是相互隔离的,一个事务不应该被其他事务干扰,多个并发事务之间要相互隔离。。持久性(Durability): 表示事务完成提交后,该事务对数据库所作的操作更改,将持久地保存在数据原创 2022-03-01 10:52:03 · 789 阅读 · 0 评论 -
SQL 性能排查
SQL 性能排查SQL 性能排查步骤:慢查询开启并捕获。explain + 慢 SQL 分析。show profile 查询 SQL 在 MySQL 服务器里执行细节和生命周期情况。SQL 数据库服务器的参数调优。开启 SQL 慢查询日志:# 查看慢日志是否开启以及目录show VARIABLES like '%slow_query_log%';# 开启慢日志--仅当前可用,重启数据库后,恢复关闭set global slow_query_log = 1;# 查看慢日志阀值sho原创 2022-03-01 09:02:20 · 632 阅读 · 0 评论 -
MySQL 索引失效情况
MySQL 索引失效情况防止索引失效的方式:索引全值匹配。最佳左前缀法则。不再索引上做任何操作(计算、函数、类型转换等),否则索引失效。存储引擎不能使用索引范围条件右侧的列。尽量使用覆盖索引。MySQL 在使用不等条件时,索引失效。is not null 无法使用索引。like 以通配符开头,MySQL 索引会失效;但以通配符结尾,索引不受影响。字符串不加单引号导致索引失效(类型转换)。10.使用 or ,索引失效。SQL 索引失效分析:注:其中有些索引的使用在数据量极小时可能原创 2022-03-01 08:53:10 · 1890 阅读 · 0 评论 -
MySQL 性能分析之 EXPLAIN 关键字
MySQL 性能分析之 EXPLAIN 关键字EXPLAIN 能够分析出什么EXPLAIN 中字段含义EXPLAIN 关键字可以模拟优化器执行 SQL 查询语句,分析语句的性能瓶颈。EXPLAIN 能够分析出什么EXPLAIN 关键字能够分析出:表的读取顺序。数据读取操作的操作类型。哪些索引可以使用。哪些索引被实际使用。表之间的引用。每张表有多少行被优化器查询。EXPLAIN 中字段含义id:id相同,执行顺序从上至下;id不同,id越大,越先被执行;id有相同也有不同时,id越大原创 2022-03-01 08:27:43 · 218 阅读 · 0 评论 -
MySQL 中索引底层实现与最佳左前缀法则
MySQL 中索引底层实现与最佳左前缀法则索引结构分类BTreeB+Tree 结构MySQL 中的索引实现最左前缀法则最后几个小问题为什么不使用最佳左缀就不能走索引呢?为什么建议 InnoDB 表必须建主键?为什么不建议使用 UUID,而推荐使用自增的整型数据?为什么推荐使用主键自增?为什么非主键索引结构的叶子节点存储的是主键值?索引结构分类MySQL 中索引有两种结构,分别为 B+Tree 结构和 HASH结构。B+Tree 结构:非叶子节点不存储数据,叶子节点存储数据,可以放更多的索引。叶原创 2022-02-28 22:04:53 · 494 阅读 · 0 评论 -
初识 MySQL 索引
初识 MySQL 索引使用索引的规则使用索引的优缺点索引的分类创建索引的场景索引是排好序的快速查找的数据结构,能够有效提高查找效率。使用索引的规则使用索引的优缺点使用索引的优点:提高检索效率,降低数据库对磁盘 I/O 成本。对数据排序,降低数据排序成本,降低 CPU 消耗。使用索引的缺点:索引也会占用空间(内存和磁盘)。所以每个表的索引最好不超过5个。提高查询速度,同时降低更新表的速度。索引的分类索引分为三大类:单值索引。即一个索引只包含一个字段。唯一索引。即索引列值必须原创 2022-02-28 21:04:28 · 123 阅读 · 0 评论 -
MySQL 存储引擎之 MyISAM 与 InnoDB 对比
MySQL 存储引擎之 MyISAM 与 InnoDB 对比存储引擎MyISAMInnoDB主外键不支持支持事务不支持支持行表锁表锁,即使操作一条记录也会锁住整个表行锁,操作时只锁住一行,不对其他行有影响,适合高并发场景表空间小(MyISAM 的数据会有三个文件,.MYI 存储索引,.MYD 存储数据,.frm 存储表结构)。大(InnoDB 的数据只有两个文件,.frm 文件存储表结构,.ibd 文件存储数据和索引)。关注点性能事务原创 2022-02-28 20:13:05 · 209 阅读 · 0 评论 -
MySql数据库基础知识
MySql数据库原创 2021-01-09 23:43:30 · 164 阅读 · 0 评论