摘要: 笔者在阅读《高性能MySQL》的过程中,发现本书对事务日志的介绍过于晦涩也过于简略,因此结合自己的理解,详细地写一下事务日志。 InnoDB的事务日志主要分为redo log(重做日志,提供前滚操作)和undo log(回滚日志,提供回滚操作),为了最大程度上减少数据写入时io问题,在存储引擎修改表 阅读全文
posted @ 2019-05-29 14:19 最好是风梳烟沐 阅读(1148) 评论(0) 推荐(0) 编辑
摘要: 最近写了蛮多数据库相关的,不出意料这应该是近期最后一篇数据库相关了。今天,笔者就来总结一下,常见的数据库优化策略。 1.首先,应该从业务层开始考虑,尽量把涉及到业务逻辑的操作放到业务层进行处理,因为持久层的资源非常宝贵,业务层可以进行扩容,而涉及到数据库就非常麻烦。因此,尽量不要使用存储过程、函数、 阅读全文
posted @ 2019-06-09 12:49 最好是风梳烟沐 阅读(294) 评论(0) 推荐(0) 编辑
摘要: 笔者看过很多数据库相关方面的面试题,但大多数答案都不太准确,因此决定在自己blog进行一个总结。 Q1:数据库有哪些索引?优缺点是什么? 1.B树索引:大多数数据库采用的索引(innoDB采用的是b+树)。能够加快访问数据的速度,尤其是范围数据的查找非常快。缺点是只能从索引的最左列开始查找,也不能跳 阅读全文
posted @ 2019-06-01 20:15 最好是风梳烟沐 阅读(561) 评论(0) 推荐(0) 编辑
摘要: MySQL会解析查询,并创建内部数据结构(解析树),然后对其进行各种优化,包括重写查询、决定表的读取顺序,以及选择合适的索引等。用户可以通过特殊的关键字提示(hint)优化器,影响它的决策过程。也可以请求优化器解释(explain)优化过程的各个因素,使用户可以知道服务器是如何进行优化决策的,并提供 阅读全文
posted @ 2019-05-29 10:29 最好是风梳烟沐 阅读(334) 评论(0) 推荐(0) 编辑
摘要: 今天电面被问到了一个复合主键的问题,击中了自己的知识盲区,当时回答是用ALTER TABLE ADD PRIMARY KEY添加,后来查了下答的不对,正好借着机会把联合主键也复习了下。 首先说一下联合主键,联合主键其实就是中间表。在多对多模型里,需要两个表中的主键组成联合主键,这样就可以查到两个表中 阅读全文
posted @ 2019-05-29 00:43 最好是风梳烟沐 阅读(9839) 评论(4) 推荐(3) 编辑
摘要: READ UNCOMMITTED(未提交读) 在未提交读级别,事务可以读取未提交的数据,这也被称为脏读(Dirty Read)。事物中的修改即使没有被提交,也会对其它的事务可见。未提交读会造成很多问题,但执行效率却不比其它级别高很多,因此,实际应用中很少会使用未提交读。 READ COMMITTED 阅读全文
posted @ 2019-05-28 21:28 最好是风梳烟沐 阅读(267) 评论(0) 推荐(0) 编辑
摘要: 递归在算法中非常常见,可以让方法调用自己,比如二分查找法就可以用递归的方法来实现。不过笔者之前从来没有看过递归的规范,今天在翻阅算法第四版时,看到了一个编写递归代码的原则,特分享一下。 1.递归总有一个最简单的情况——方法的第一条语句总是一个包含return的条件语句; 2.递归总是去尝试解决一个规 阅读全文
posted @ 2019-05-24 14:37 最好是风梳烟沐 阅读(185) 评论(0) 推荐(0) 编辑
摘要: 最近笔者在学习JVM相关的知识,故写作此文来分享一下本人了解的一些垃圾回收算法。 标记回收算法 最基础的垃圾回收算法就是“标记-回收”算法(Mark-Sweep)算法,这是其它所有垃圾回收算法的基础,相当于内功,其它算法都是根据内功来发挥的外功。顾名思义,本算法需要先标记出所有需要回收的对象,待标记 阅读全文
posted @ 2019-05-24 12:58 最好是风梳烟沐 阅读(4272) 评论(1) 推荐(1) 编辑
摘要: 1.首先,equal和==最根本的区别在于equal是一个方法,而==是一个运算符。 2.一般来说,==运算符比较的是在内存中的物理地址,.equal()比较的是哈希算法值是否相等(即hashcode),且基本数据类型只能用==来进行比较。如果比较的双方没有哈希值,那么此时==和equal()比较的 阅读全文
posted @ 2019-05-23 22:58 最好是风梳烟沐 阅读(12091) 评论(0) 推荐(1) 编辑
摘要: 不同于CPP,JAVA中不需要程序员对指针进行操作。不过,这不代表JAVA没有指针,事实上,JAVA的指针操作都被底层代码封装了。笔者在初学Java时,虽然就了解了形参,实参,StringBuffer这些概念,但一直只流于表面,对此没有一个深度的认识。直到最近开始学习JVM虚拟机,才真正认识到了JA 阅读全文
posted @ 2019-05-23 19:06 最好是风梳烟沐 阅读(28100) 评论(2) 推荐(1) 编辑