Java后端面试-数据库(重点MYSQL)

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

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容