1.关系型 非关系型 底层数据结构
关系型数据库我用过的有MySQL,H2(网络内嵌),MYSQL使用的引擎不一样,底层的数据结构就不一样,常用的InnoDB的底层是有B+树构成
非关系型的数据库我用过的有MongoDB, Redis,MongoDB的底层是B树,B+树是B树的子类(多路搜索树), Redis底层是hash(各个数据结构的底层构成,总结Redis时候细讲)。
关系型数据库效率不如非关系型数据库,因为关系型数据库数据一般存储在磁盘上,非关系型数据库一般存储在内存中;
关系型数据库支持SQL语句,非关系型不支持;
关系型数据库是以表格形式存储,非关系数据库不是,MongoDB以JSON串存储,Redis以key_value的格式存储;
关系型数据库支持事务,非关系型数据库有的不支持,但是MongoDB是从4.0版本以后开始支持。
2.MySQL底层结构
底层数据结构上面讲过;
存储结构的话是 segment->
3.MySQL 引擎 各个引擎 数据结构 优缺点
4. explain
5. mvcc 版本链 log种类 用途
6. 索引 类别 创建的原则 使索引不生效的SQL 索引不是越多越好
聚簇索引 非聚簇索引
7. SQL语句 执行顺序
8. MySQL事务特性 隔离级别 带来的问题 锁
9. 读取方式 隐式加锁 显式加锁 实时读 快照读
10. 回表操作 聚簇索引 非聚簇索引
11. MySQL的log
redo log(确保事务持久性)/undo log(确保事务原子性)/bin log(用于主从部署 主从复制)/error log/slow query log(SQL执行慢的记录)/general log/relay log