在学习“UNIQUE约束”的时候,看到这样一句话:“尽可能压缩关键字的长度。主键的列或者UNIQUE列很可能被连接和频繁地查询。紧凑的关键字长度允许有更多的索引项放入给定的8KB页面里,从而减少I/O,增加缓存命中率,加快字符匹配速度。”这句话不明白是什么意思?这里的关键字指的是什么?是索引的名称?还是其他的什么?请大家帮忙解答,谢谢^_^

解决方案 »

  1.   

    这里的关键字指的是主键里面的列。
    主键里面的列越短,每次I/O读到的记录自然就更多,放到内存里面的数量也就更多,速度才能提高。
    否则就要多次I/O才能读到需要的记录。
    I/O操作是最慢的,自然是越少越好。
      

  2.   

    “主键里面的列”是指主键含有的列是吗?
    ------------------------------------
    是。
    也就是说,尽量只对一个列设置主键,不要针对多列定义联合主键。是这样理解的吗?
    ------------------------------------
    能一个列最好,但主要是要短。几个列也可以的,总长度短就比较好。
    比如,能用smallint就不要用int,能用varchar(10)就不要用nvarchar(10)等等。