数据库
IMUHERO
持续学习者
展开
-
如何设计一个关系型数据库
一、首先将数据库设计分为两大部分:存储部分、程序实例模块1.存储部分:该部分类似于一个文件系统,来将数据持久化到存储设备中。2.程序实例模块:对存储进行逻辑上的管理二、程序实例模块包含:存储、缓存、解析、日志、权限、灾难、索引、锁1.存储管理模块:数据的逻辑关系转换成物理的存储关系2.缓存机制:优化执行效率3.sql解析:用于将SQL解析4.日志管理...原创 2019-08-07 23:55:26 · 426 阅读 · 0 评论 -
数据库索引
目录一、为什么要使用索引二、什么样的信息可以成为索引?三、索引的数据结构四、不同结构的优缺点五、为什么通常使用B树而不使用二叉树六、密集索引和稀疏索引的区别七、索引是建立得越多越好吗一、为什么要使用索引1.全表扫描在数据量大的时候很慢(数据量小比使用索引快)2.将关键信息作为索引,根据这些关键信息定位查询到我们想要的页面,可以大幅提高查询速度。二、什么样...原创 2019-08-21 23:36:58 · 153 阅读 · 0 评论 -
Mysql的存储引擎:InnoDB 和 MyISAM
目录一、结构和索引二、基本差别:三、细节和具体实现差别:四、锁方面的区别五、适用的场景一、结构和索引MyISAM:不管是主键索引、唯一键索引或者普通索引,其索引均属于稀疏索引数据和索引分开存储InnoDB必须有且只有一个索引,获取数据分两步,先定位到主键再通过主键查找数据和索引存在一起二、基本差别:InnoDB支持事务处理等高级处理...原创 2019-08-21 23:50:12 · 121 阅读 · 0 评论 -
如何定位并优化慢查询Sql
目录一、整体思路二、具体部分1.怎么查询慢日志2.使用explain分析3.对sql进行调优三、mysql查询优化器会使用哪种方式查询一、整体思路1.根据慢日志定位慢查询sql2.使用explain等工具分析sql3.修改sql或者尽量让sql走索引二、具体部分1.怎么查询慢日志(1)show variables like '%quer%'...原创 2019-08-22 08:48:16 · 3300 阅读 · 0 评论 -
最左匹配原则及其成因
目录一、案例分析二、最左匹配原则的概念三、最左匹配原则的成因一、案例分析1.假设数据库存在一个联合索引键:2.使用查询语言3.使用explain分析:发现走的是联合索引键4.如果只查询area发现,仍旧走的是联合索引键5.但是如果将area删掉,只查title发现不走索引,走的是全表扫描6.结论:只有包含索引键左...原创 2019-08-22 23:34:04 · 7380 阅读 · 7 评论 -
锁模块
目录一、数据库锁的分类:二、读锁和写锁一、数据库锁的分类:1.细粒度:表级、行级、页级锁(表级和行级之间)2.锁级别:共享锁、排它锁3.使用方式:乐观锁、悲观锁->乐观锁:认为数据一般不会冲突,只要在数据提交时才检测是否冲突,一般记录数据版本而不是数据库的锁。->悲观锁:对外界保守,在整个数据处理过程都处于锁定状态,全程使用排它锁。...原创 2019-08-23 08:07:30 · 227 阅读 · 0 评论