高性能mysql基础知识3

架构优化和索引

这一章是我们平时最常见最有用的优化数据库的方法,其中包括数据类型的选择 索引的建立

1 数据类型

选择合适的数据类型之前就写过,这次再写一遍当巩固了,其中不常用的数据类型还是不作介绍
    (1)尽量选择简单的类型
    比如,整数类型比字符串处理的要快。所以在存储日期的时候要用整型,不用字符串类型。
    (2)尽量避免使用Null
     原则:除非真的要保存为null,不然都要保存为not null。因为mysql很难优化引用了可空列的查询
      (3)整数
     这里讲的不会太书面化,存储整数的类型我们一般知道的有smallint      tinyint   mediumint   int   bigint,他们分别需要8 16 24 32 64个存储单位,范围应该是0到2的n次方。
     如果不加符号限制的话应该是-2的(n-1)到2(n-1)
     (4)实数
      float 占4个字节  double 占8个字节 decimail(M,D)占M+2个字节。说多了也没用,知道decimal比其他的都要精确就可以了,平时用的多是decimal(10,2)这种格式的,不如存钱
      的数据类型就用这样的,表示小数点后可存储两位。其他的说多了就是废话了
      (5)字符串类型
      最常用的当然还是char和varchar了,他俩最重要的区别是varchar可以保存可变长度的字符串http://blog.csdn.net/goodlixueyong/article/details/6039984这个写的挺好的,
      我懒得写了。需要注意的一点是mysql在5.0之后,varchar(250)就可以存储255个汉字而不是125个汉字了。如果保存的字符串比较大的话,我们还可以有blob和text可以
      选择。BLOB和TEXT分别以二进制和字符串形式保存大量数据。平时多用TEXT类型存储大量字符串
      (6)日期和时间类型

2 索引基础 109

      索引是在存储引擎层实现的,而不是服务器层,所以他不是标准化的,下面是目前mysql支持的索引类型:

      1 B-tree索引

        我们平时用的索引,如果不加特殊说明的话都是B-tree类型的。B-tree是MYSQl默认使用的索引(Memory除外,因为之前说过索引是基于存储引擎的)。

        B-tree的最大的特点是按顺序类型保存了索引的列,它加速了数据访问,因为它不会扫描整个表得到数据。

      2 哈希索引

      3 空间索引

      4 全文索引

      

       













     
    

你可能感兴趣的:(高性能mysql基础知识3)