[关闭]
@HUST-SuWB 2017-05-05T03:24:01.000000Z 字数 740 阅读 436

Mysql的索引优化和分区设计

蘑菇街


建索引的技巧

建索引通常需要遵循以下原则:查询频繁(业务逻辑决定)、区分度高、长度小(与区分度保持一个平衡就是一个最优的效果)、尽量能覆盖常用查询字段(并不表示所有字段都建立索引)。
通过EXPLAIN可以查看SQL语句执行的具体细节,比如是否使用了索引以及使用了什么索引等。

分区

分区允许你通过设置各种规则将一个表的各个分区跨文件系统存储。实际上,不同位置的不同表分区是作为一个单独的表来存储的。用户所选择的、实现数据分割的规则被称为分区函数(partioning function),这在MySQL中它可以是模数,或者是简单的匹配一个连续的数值区间或数值列表,或者是一个内部HASH函数,或一个线性HASH函数。最常见是的水平分区(horizontal partitioning),也就是将表的不同的元组分配到不同的物理分区上。[1]
Mysql支持的分区方式有四种,其中最常用的就是范围分区。

  1. RANGE分区(portioning):根据列值所属的范围区间,将元组分配到各个分区。
  2. LIST分区:类似于按RANGE分区,区别在于LIST分区是基于列值匹配一个离散值集合中的某个值来进行选择。
  3. HASH分区:根据用户定义的函数的返回值来进行选择的分区,该表达式使用将要插入到表中的这些行的列值进行计算。这个函数可以包含MySQL中有效的、产生非负整数值的任何表达式。
  4. KEY分区:类似于按HASH分区,区别在于KEY分区只支持计算一列或多列,且MySQL服务器提供其自身的哈希函数。
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注