• 文章介绍
  • 评价建议

  • 目录

    1、为什么用自增列作为主键 ..........................................................................................................3

    2、为什么使用数据索引能提高效率 ........................................................................................4

    3、B+树索引和哈希索引的区别.................................................................................................4

    4、哈希索引的优势: ....................................................................................................................4

    5、哈希索引不适用的场景: ......................................................................................................4

    6、B 树和 B+树的区别 ...................................................................................................................5

    7、为什么说 B+比 B 树更适合实际应用中操作系统的文件索引和数据库索引? .6

    8、MySQL 联合索引........................................................................................................................6

    9、什么情况下应不建或少建索引.............................................................................................7

    10、什么是表分区? ......................................................................................................................7

    11、表分区与分表的区别.............................................................................................................7

    12、表分区有什么好处?.............................................................................................................8

    13、分区表的限制因素..................................................................................................................8

    14、如何判断当前 MySQL 是否支持分区?..........................................................................8

    15、MySQL 支持的分区类型有哪些? ....................................................................................9

    16、四种隔离级别 ...........................................................................................................................9

    18、在 MVCC 并发控制中,读操作可以分成两类: ...................................................... 10

    19、行级锁定的优点:............................................................................................................... 10

    20、行级锁定的缺点:............................................................................................................... 10

    21、MySQL 优化............................................................................................................................ 11

    22、key 和 index 的区别............................................................................................................ 12

    23、Mysql 中 MyISAM 和 InnoDB 的区别有哪些?.................................................. 12

    24、数据库表创建注意事项 ..................................................................................................... 13

    MySQL 锁机制 ......................................................................................................................... 20

    MySQL 事务处理 .................................................................................................................... 21

    存储过程 ........................................................................................................................................ 21

    触发器 ............................................................................................................................................. 21

    MySQL 的 关 联 查 询 语 句 ................................................................................................... 31

    分区表的工作原理........................................................................................................................... 41

    分库分表的工作原理....................................................................................................................... 42

    分表方式............................................................................................................................................. 42

    MySQL 的复制原理及负载均衡.................................................................................................... 43

    内容预览

    1、如果我们定义了主键(PRIMARY KEY),那么 InnoDB 会选择主键作为聚集索引。

    如果没有显式定义主键,则 InnoDB 会选择第一个不包含有 NULL 值的唯一索引作为主键索引。

    如果也没有这样的唯一索引,则 InnoDB 会选择内置 6 字节长的 ROWID 作为隐含的聚集索引(ROWID 随着行记录的写入而主键递增,这个 ROWID 不像ORACLE 的 ROWID 那样可引用,是隐含的)。

    2、数据记录本身被存于主索引(一颗 B+Tree)的叶子节点上,这就要求同一个叶子节点内(大小为一个内存页或磁盘页)的各条数据记录按主键顺序存放因此每当有一条新的记录插入时,MySQL 会根据其主键将其插入适当的节点和位置,如果页面达到装载因子(InnoDB 默认为 15/16),则开辟一个新的页(节点)

    3、如果表使用自增主键,那么每次插入新的记录,记录就会顺序添加到当前索引节点的后续位置,当一页写满,就会自动开辟一个新的页

    4、如果使用非自增主键(如果身份证号或学号等),由于每次插入主键的值近似于随机,因此每次新纪录都要被插到现有索引页得中间某个位置

    此时 MySQL 不得不为了将新记录插到合适位置而移动数据,甚至目标页面可能已经被回写到磁盘上而从缓存中清掉,此时又要从磁盘上读回来,这增加了很多开销同时频繁的移动、分页操作造成了大量的碎片,得到了不够紧凑的索引结构,后续不得不通过 OPTIMIZE TABLE 来重建表并优化填充页面。

    免责声明:
    1. 本站资源转自互联网,源码资源分享仅供交流学习,下载后切勿用于商业用途,否则开发者追究责任与本站无关!
    2. 本站使用「署名 4.0 国际」创作协议,可自由转载、引用,但需署名原版权作者且注明文章出处
    3. 未登录无法下载,登录使用金币下载所有资源。
    IT小站 » 全网最全、最新的数据库面试题(2020 版)《数据库面试宝典》

    常见问题FAQ

    没有金币/金币不足 怎么办?
    本站已开通每日签到送金币,每日签到赠送五枚金币,金币可累积。
    所有资源普通会员都能下载吗?
    本站所有资源普通会员都可以下载,需要消耗金币下载的白金会员资源,通过每日签到,即可获取免费金币,金币可累积使用。

    发表评论