zoukankan      html  css  js  c++  java
  • java面试一日一题:mysql中常用的存储引擎有哪些?

    问题:请讲下mysql中常用的引擎有哪些?

    分析:该问题主要考察对mysql存储引擎的理解,及区别是什么?

    回答要点:

    主要从以下几点去考虑,

    1、mysql的存储引擎的基本概念?

    2、mysql中常用的存储引擎有哪些及各自的区别是什么?

    从上篇《java面试一日一题:请讲下对mysql的理解》已经知道了mysql从整体架构上分为两部分,一部分是server层,另外一部分是存储引擎层。说的简单点存储引擎就是用来实际管理mysql中的数据,为了适用于不同的场景有了不同的存储引擎。比较常用的存储引擎有myIsam和Innodb两种。

    myIsam

    myIsam不支持事务;

    myIsam不支持外键;

    myIsam的索引是非聚集索引,索引和数据是分开的;

    myIsam使用一个变量保存了表中的数据总行数

    myIsam支持表锁;

    myIsam支持全文索引;

    Innodb

    innodb支持事务,事务的实现依靠redo log、undo log、锁、MVCC等技术;

    inndo是聚集索引,主键索引和数据是在一起的;

    innod没有保存数据的总行数;

    innodb支持表、行锁,默认是行锁;

    innodb不支持全文索引,在5.7以后的版本才支持全文索引;

    本文简单的从一个面试过程中常见的面试题入手,讲解了mysql的myIsam和Innodb两种存储引擎的区别。其实从上面的回答中面试官可以引申出很多问题,例如,

    1、什么是聚集、非聚集索引;

    2、mysql的索引数据结构是什么样子的,为什么使用B+树;

    3、什么是redo log、undo log

    4、什么是MVCC;

    5、事务的特性有哪些;

    简单列举下由本题引申的面试点,后面会统一总结。

    一个爱写文章的程序员,欢迎关注我的公众号“北漂程序员”。我有故事,你有酒吗
  • 相关阅读:
    STM32|4-20mA输出电路
    Delphi版IP地址与整型互转
    侧方位停车
    98年的‘风暴’,08年的‘危机’,18年的“钱荒‘’
    一些软件设计的原则
    oracle-数据库的各种-锁-详解
    演员李艾佳去世突发病征年仅36岁
    【人生】王石:没变强是因为你太舒服
    耐心看的人早晚会成人上人
    Linux之make的用法讲解
  • 原文地址:https://www.cnblogs.com/teach/p/14677145.html
Copyright © 2011-2022 走看看