摘要: Mysql提供了Explain关键字,用来对SELECT语句进行解析,一般用于进行慢查询分析与优化。 使用方法示例: EXPLAIN SELECT * FROM `user_info` WHERE id < 100; Explain输出内容如下: mysql> explain select * fr 阅读全文
posted @ 2021-05-11 00:32 suffocat1ng 阅读(63) 评论(0) 推荐(0) 编辑
摘要: 索引的分类 普通索引 普通索引(由关键字KEY或INDEX定义的索引)的唯一任务是加快对数据的访问速度。因此,应该只为那些最经常出现在查询条件(WHEREcolumn=)或排序条件(ORDERBYcolumn)中的数据列创建索引。只要有可能,就应该选择一个数据最整齐、最紧凑的数据列(如一个整数类型的 阅读全文
posted @ 2021-05-06 19:05 suffocat1ng 阅读(135) 评论(0) 推荐(0) 编辑
摘要: 数据库锁 乐观锁与悲观锁 乐观锁: 每次获取数据时都假设不会发生冲突。 一般是由用户自己实现的锁机制,乐观锁的实现方式一般包括使用版本号和时间戳。 悲观锁: 每次获取数据时都假设会发生冲突。 悲观锁主要分为表级锁、页级锁、行级锁。 MyISAM引擎中只用到表级锁,不会有死锁的问题,锁的开销也很小,但 阅读全文
posted @ 2021-05-05 20:11 suffocat1ng 阅读(121) 评论(0) 推荐(0) 编辑
摘要: 一、事务隔离级别总览 隔离级别 脏读(Dirty Read) 不可重复读(NonRepeatable Read) 幻读(Phantom Read) 读未提交(Read uncommitted) √ √ √ 读已提交(Read committed) × √ √ 可重复读(Repeatable read 阅读全文
posted @ 2021-05-04 23:44 suffocat1ng 阅读(81) 评论(0) 推荐(0) 编辑
摘要: 原子性(Automicity): 保证事务中的所有操作全部执行或者全部不执行。事务在执行过程中发生错误,会被回滚(Rollback)到事务开始前的状态。 一致性(Consistency): 事务操作之前和操作之后是数据库是完整性没有遭到破坏。 拿转账来说,假设用户A和用户B两者的钱加起来一共是500 阅读全文
posted @ 2021-05-04 22:37 suffocat1ng 阅读(47) 评论(0) 推荐(0) 编辑
摘要: 1. 范式概述 目前关系数据库有六种范式:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、巴斯-科德范式 (BCNF)、第四范式(4NF)和第五范式(5NF,又称完美范式)。 满足最低要求的范式是第一范式(1NF)。在 第一范式的基础上进一步满足更多规范要求的称为第二范式(2NF),其余 阅读全文
posted @ 2021-05-04 21:49 suffocat1ng 阅读(110) 评论(0) 推荐(0) 编辑
摘要: 图中展示了7种作用于不同分代的收集器,如果两个收集器之间存在连线,则说明它们可以搭配使用。虚拟机所处的区域则表示它是属于新生代还是老年代收集器。 新生代收集器:Serial、ParNew、Parallel Scavenge 老年代收集器:CMS、Serial Old、 Parallel Old 整堆 阅读全文
posted @ 2021-04-16 00:02 suffocat1ng 阅读(31) 评论(0) 推荐(0) 编辑
摘要: 如何判断Java对象是否已死? 引用计数法、可达性算法。 引用计数法? 1. 描述 每个对象有一个引用计数器,当对象被引用一次则计数器加1,当对象引用失效一次则计数器减1,对于计数器为0的对象意味着是垃圾对象,可以被GC回收。 2. 优点 判断方式简单。 算法效率高。 3. 缺点 循环引用。 可达性 阅读全文
posted @ 2021-04-06 21:09 suffocat1ng 阅读(51) 评论(0) 推荐(0) 编辑
摘要: 高可用Mysql是依赖复制(Replication)来实现的。复制解决的问题就是将一台数据库服务器上的数据同步到其他服务上。 Mysql数据库的复制有如下三个步骤: 1. 在主库上的数据更改记录到二进制日志(binary log)中。 2. 从库将主库上的binary log复制到自己的中级日志(r 阅读全文
posted @ 2021-01-28 19:16 suffocat1ng 阅读(248) 评论(0) 推荐(0) 编辑