zoukankan      html  css  js  c++  java
  • MySQL 分区知识点(三)

    前言:

      MySQL 分区后每个分区成了独立的文件,虽然从逻辑上还是一张表其实已经分成了多张独立的表,

      从 information_schema.INNODB_SYS_TABLES 系统表可以看到每个分区都存在独立的 TABLE_ID;

      

      由于 Innodb 数据和索引都是保存在 ".ibd" 文件当中(从INNODB_SYS_INDEXES 系统表中也可以得到每个索引都是对应各自的分区( primary key 和 unique 也不例外)),

      所以分区表的索引也是随着各个分区单独存储。

    一、分区索引

      索引方式:
      // 性能依次降低
      1.主键分区

        主键分区即字段是主键同时也是分区字段,性能最好

      2. 部分主键+分区索引

        使用组合主键里面的部分字段作为分区字段,同时将分区字段建索引

      3.分区索引

        没有主键,只有分区字段且分区字段建索引

      4.分区+分区字段没有索引

        只建了分区,但是分区字段没有建索引

    引用总结:

      因为每一个表都需要有主键这样可以减少很多锁的问题,主键需要解决全局唯一性并且在插入和更新时可以不需要去扫描全部分区,造成主键和分区列必须存在关系;

      所以最好的分区效果是使用主键作为分区字段其次是使用部分主键作为分区字段且创建分区字段的索引,其它分区方式都建议不采取。

  • 相关阅读:
    所有HTTP返回状态值,并说明用途
    几个简单的排序算法
    Linux命令大全
    存储过程中执行动态Sql语句
    IE8的背景不显示和图片错位 解决方案
    海量数据处理方法
    关于MSSQL的返回值问题
    SQL Server 2008不能修改表的解决方法
    转:读AD里特殊的属性in C#
    了解SMS的主要特性。
  • 原文地址:https://www.cnblogs.com/loongsoft/p/7307517.html
Copyright © 2011-2022 走看看