面试
未名who
不是在学习,就是在学习的路上。。。
展开
-
MySQL使用可重复读作为默认隔离级别的原因(一)
一般的DBMS系统,默认都会使用读提交(Read-Comitted,RC)作为默认隔离级别,如Oracle、SQL Server等,而MySQL却使用可重复读(Read-Repeatable,RR)。要知道,越高的隔离级别,能解决的数据一致性问题越多,理论上性能损耗更大,可并发性越低。隔离级别依次为 SERIALIZABLE > RR > RC > Read-Uncommite...转载 2019-01-01 17:54:55 · 1850 阅读 · 0 评论 -
MySQL索引背后的数据结构及算法原理
摘要 本文以MySQL数据库为研究对象,讨论与数据库索引相关的一些话题。特别需要说明的是,MySQL支持诸多存储引擎,而各种存储引擎对索引的支持也各不相同,因此MySQL数据库支持多种索引类型,如BTree索引,哈希索引,全文索引等等。为了避免混乱,本文将只关注于BTree索引,因为这是平常使用MySQL时主要打交道的索引,至于哈希索引和全文索引本文暂不讨论。 文章主要内容分为三个部分。 第...转载 2018-05-19 21:23:47 · 179 阅读 · 0 评论 -
mysql单列索引、多列索引的使用
一、简介 数据库的索引可以加快查询速度,原因是索引使用特定的数据结构(B-Tree)对特定的列额外组织存放,加快存储引擎(索引是存储引擎实现)查找记录的速度。 索引优化是数据库优化的最重要手段。 如果查询语句使用索引(通常是where条件匹配索引)就会利用树的结构加快查找,索引会按值查找到要查找的行在表中位置,不需回表查询数据的就是聚簇索引(...转载 2018-02-06 23:47:28 · 869 阅读 · 0 评论 -
Synchronized和ReentrantLock的区别
Synchronized是JVM层次的锁实现,ReentrantLock是JDK层次的锁实现; Synchronized的锁状态是无法在代码中直接判断的,但是ReentrantLock可以通过ReentrantLock#isLocked判断; Synchronized是非公平锁,ReentrantLock是可以是公平也可以是非公平的; Synchronized是不可以被中断的,而Reentr...转载 2019-02-24 18:32:52 · 263 阅读 · 1 评论