美文网首页
MySQL 概念-面试

MySQL 概念-面试

作者: 我的小猫不见了 | 来源:发表于2020-04-06 13:11 被阅读0次

    1.如果定义了主键, 那么系统会自动将主键建立索引, 如果没有 , 则会选择第一个非NULL 作为主键 , 如果还是没有 , 则会使用隐性的 ROWID , 此ROWID 不可像Oracle那样可以显示.

    2.为什么索引可以提高效率

    因为索引是有序的 , 不用没一个记录都去查找 , 二分法可以极速定位 .

    3. 联合索引.

    (a,b,c) 这种 , 三个键作为索引 , 也可以是a,b , 但是不可以b,c

    4. 什么情况下不建或少建索引,

    1.表记录太少
    2.经常插入 , 删除, 修改的 表
    3 . 字段重复值太多 , 一班不会建索引 , 但是可以考虑混合索引 .

    5.什么是表分区? 和分表有什么区别 .

    根据一定的规则, 把一张表拆分成很多小表 , 容易管理 , 但是底层却是由很多物理分区组成的.
    分表则是由很多张表 .

    6.表分区有什么好处.

    分区表分布在很多不同的物理设备上 ,从而高效利用多个硬件设备.
    和单个磁盘或者文件系统相比 , 可以存储多个数据.
    2.优化查询 .其实类似于HDFS , 分而治之 , 尤其是对count , sun类型的处理

    6. 一个表最多只能有1024个分区

    7.MySQL支持的分区类型有哪些?

    RANGE分区: 这种模式允许将数据划分不同范围。例如可以将一个表通过年份划分成若干个分区
    LIST分区: 这种模式允许系统通过预定义的列表的值来对数据进行分割。按照List中的值分区,与RANGE的区别是,range分区的区间范围值是连续的。
    HASH分区 :这中模式允许通过对表的一个或多个列的Hash Key进行计算,最后通过这个Hash码不同数值对应的数据区域进行分区。例如可以建立一个对表主键进行分区的表。
    KEY分区 :上面Hash模式的一种延伸,这里的Hash Key是MySQL系统产生的

    7.MySQL 优化.

    为搜索字段建立索引
    2.开启查询缓存 , 优化查询 ,
    3.如果表太长 , 垂直分表
    4.选择正确的存储引擎
    5.如果只需要一部分或者一行数据 , 记得使用limit , 这样搜索到结果会立即停止继续遍历.

    InnoDB 和 MyISAM
    前者支持事物 , 后者不支持
    前者不支持全文搜索 , 后者支持
    5.5版本后默认是 InnoDB
    涉及到大量增删改 , 使用前者InnoDB

    相关文章

      网友评论

          本文标题:MySQL 概念-面试

          本文链接:https://www.haomeiwen.com/subject/mfzvphtx.html