MySQL/面试题:如何调优 SQL
todo:应该参考陈阳的课程做一个系统的回答
todo:应该参考陈阳的课程做一个系统的回答
按照锁的粒度划分,可分为表级锁、行级锁、页级锁 MyISAM 支持表级锁,InnoDB 支持表级锁和行级锁,BDB 支持页级锁(不常见),介于表级锁和行级锁之间。关于页,和数据库底层的存储结构有关,有机会讲一下页。
按照锁级别划分,可分为读锁(共享锁)、写锁(排它锁)
按照加锁方式划分,可分为自动锁、显示锁
按照操作划分,可分为 DML 锁、DDL 锁
当一张表数据量很小,不加索引,直接全表扫描可能会更快
哈希表这种结构适用于只有等值查询的场景 MySQL 有自适应的 hash 索引 有序数组索引只适用于静态存储引擎 大多数的数据库存储却并不使用二叉树,而是使用 B+ 树。
咋一看这个题目有点空,其实能够考研我们对数据库设计的整体把控。首先数据库系统可以分为两层: - Server 层(也就是程序实例),提供获取以及管理数据的方式,还要必要的问题追踪机制。Server 层又可以细分为: - 存储管理:将数据的逻辑关系转换为物理关系 - 缓存机制:优化执行效率 - SQL 解析: