
数据库
文章平均质量分 90
Slayer_Zhao
full-stack programmer
展开
-
深入理解 MySQL 索引底层原理
Mysql 作为互联网中非常热门的数据库,其底层的存储引擎和数据检索引擎的设计非常重要,尤其是 Mysql 数据的存储形式以及索引的设计,决定了 Mysql 整体的数据检索性能。我们知道,索引的作用是做数据的快速检索,而快速检索的实现的本质是数据结构。通过不同数据结构的选择,实现各种数据快速检索。在数据库中,高效的查找算法是非常重要的,因为数据库中存储了大量数据,一个高效的索引能节省巨大的时间。比如下面这个数据表,如果 Mysql 没有实现索引算法,那么查找 id=7 这个数据,那么只能采取暴力顺序遍历转载 2021-01-05 11:35:47 · 265 阅读 · 0 评论 -
Mysql 乐观锁和悲观锁
悲观锁悲观锁(Pessimistic Lock),顾名思义,就是很悲观,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会block直到它拿到锁。悲观锁:假定会发生并发冲突,屏蔽一切可能违反数据完整性的操作。Java synchronized 就属于悲观锁的一种实现,每次线程要修改数据时都先获得锁,保证同一时刻只有一个线程能操作数据,其他线程则...原创 2020-03-18 13:43:55 · 256 阅读 · 0 评论 -
数据库知识梳理——Mysql中innoDB日志以及二阶段提交
Mysql innoDB日志Mysql innoDB有两个日志模块:redolog 和 binlogredo log又称重做日志文件,用于记录事务操作的变化,记录的是数据修改之后的值,不管事务是否提交都会记录下来。在实例和介质失败(media failure)时,redo log文件就能派上用场,如数据库掉电,InnoDB存储引擎会使用redo log恢复到掉电前的时刻,以此来保证数据的完...原创 2019-10-11 15:28:54 · 650 阅读 · 1 评论 -
数据库知识梳理——Mysql慢查询日志
慢查询日志概念 MySQL的慢查询日志是MySQL提供的一种日志记录,它用来记录在MySQL中响应时间超过阀值的语句,具体指运行时间超过long_query_time值的SQL,则会被记录到慢查询日志中。long_query_time的默认值为10,意思是运行10S以上的语句。默认情况下,Mysql数据库并不启动慢查询日志,需要我们手动来设置这个参数,当然,如果不是调优需要的话,一般...原创 2019-10-09 21:25:23 · 142 阅读 · 0 评论 -
数据库知识梳理——关于Mysql中的MVCC实现原理
什么是MVCC我们都知道Mysql在InnoDB引擎下使用了行锁,但是MySQL的大多数事务型存储引擎实现的都不是简单的行级锁。基于提升并发性能的考虑,它们一般都同时实现了多版本并发控制(MVCC)。不仅仅是MySQL,包括Oracle,PostgreSQL等其他数据库系统也都实现了MVCC,但是各自的实现机制并不相同,因为MVCC并没有一个同一的标准。可以认为MVCC是行级锁的一个变种,但...原创 2019-10-09 21:11:57 · 789 阅读 · 0 评论 -
数据库知识梳理——事务的隔离级别(脏读、幻读、不可重复读)
MySQL 的默认事务隔离级别是 Repeatable Read(可重复读)。Oracle 的默认事务隔离级别是 Read Committed(读已提交)。同一个应用程序中的多个事务或不同应用程序中的多个事务在同一个数据集上并发执行时, 可能会出现许多意外的问题,这些问题可分为如下三种类型:脏读(Drity Read):已知有两个事务A和B, A读取了已经被B更新但还没有被提交的数据...原创 2019-09-16 20:17:19 · 670 阅读 · 2 评论 -
数据库知识梳理——innoDB 与 MyISAM 引擎区别
MyISAM存储: 如果表对事务要求不高,同时是以查询和添加为主的,我们考虑使用myisam存储引擎,比如bbs 中的 发帖表,回复表,还有批量添加MyISAM效率高INNODB 存储: 对事务要求高,保存的数据都是重要数据,我们建议使用INNODB,比如订单表,账号表。【面试重点】MyISAM 和 INNODB的区别?1. 事务安全(MyISAM不支持事务,INNODB支持事务)...原创 2019-09-16 19:54:44 · 156 阅读 · 0 评论 -
数据库知识梳理——Mysql索引原理B树、B+树
相关资料:https://blog.youkuaiyun.com/v_july_v/article/details/6530142https://blog.youkuaiyun.com/guoziqing506/article/details/64122287B树:B+树:原创 2019-09-16 16:15:45 · 217 阅读 · 0 评论 -
数据库知识梳理——Mysql建立、删除索引及使用
一.索引的作用 一般的应用系统,读写比例在10:1左右,而且插入操作和一般的更新操作很少出现性能问题,遇到最多的,也是最容易出问题的,还是一些复杂的查询操作,所以查询语句的优化显然是重中之重。 在数据量和访问量不大的情况下,mysql访问是非常快的,是否加索引对访问影响不大。但是当数据量和访问量剧增的时候,就会发现mysql变慢,甚至down掉,这就必须要考虑优化s...原创 2019-09-16 15:33:26 · 200 阅读 · 0 评论 -
数据库练习题(快速复习)
CREATE TABLE emp( empno INT, ename VARCHAR(50), job VARCHAR(50), mgr INT, hiredate DATE, sal DECIMAL(7,2), comm DECIMAL(7,2), deptno INT) ; INSERT INTO emp VALUES(7369,'SMITH','CLERK',7902...原创 2019-09-04 12:26:59 · 446 阅读 · 0 评论