如何设计一个数据库
程序实例
存储管理,缓存机制,SQL解析,日志管理,权限划分,容灾机制,索引管理,锁管理
存储(文件系统)
索引数据结构
- 二叉树,
- B-树
- B+树
- hash
- BitMap
如何定位并优化慢查询sql
- 根据慢日志定位慢查询sql
- 使用explain等工具分析sql
- 修改sql或者尽量让sql走索引
myisam适用场景
- 频繁执行全表count语句
- 对数据进行增删改的频率不高,查询非常频繁
- 没有事务
innodb适用场景
- 数据增删改查都相当频繁
- 可靠性要求比较高,要求支持事务
数据库锁的分类
- 按锁的粒度划分,可分为表级锁,行级锁,页级锁
- 按锁级别划分,可分为共享锁,排它锁
- 按加锁方式划分,可分为自动锁,显式锁
- 按操作划分,可分为DML锁,DDL锁
- 按使用方式划分,可分为乐观锁,悲观锁
数据库事务的四大特性
- 原子性
- 一致性
- 隔离性
- 持久性
转载于:https://www.cnblogs.com/liuweiqc/p/10988857.html