数据类型选择

① char 和 varchar

    char 是固定长度

    varchar 是变长

    char的查询结果会忽略末尾的空格,varchar不会   char是定长,故查询速度比varchar快

②text 和blob

   在保存少量字符串时会使用char 或varchar 但是在保存大量字符时用text或blob

   text 只能保存字符数据,比如文章或日记

   blob除了保存字符外还可以保存二进制数据,比如照片

  存在问题:a  在执行大量的删除操作时,会影响其性能

                       删除操作会在数据表中留下大量的空洞,以后填入这些空洞的记录在插入的性能上会有影响,为了提高性能,需要定期使用optimize table对碎片进行整理

                   b 可以使用合成索引来提高查询性能

                      create table t (id int,contex blob,hash_value varchar(40));

                      insert into t values(1,repeat('aabbcc',2),md5(contex));//md5()是一个加密 函数,在这里用于生成散列值

                      select * from t where hash_value=md5(repeat('aabbcc',2))

                      只适用于精确匹配

                   c 将blob 和text 列分离到单独的表中

浮点数和定点数

       浮点数用于表示存在小数部分的数值,如果插入的数据的精度超过定义的实际精度,则插入值会被四舍五入到实际定义的精度值,在四舍五入过程中不会报错

       定点数保存成字符串形式,当插入的数值的精度大于实际的精度时会报错或警告

 

posted @ 2017-12-18 16:26  吾漫兮  阅读(247)  评论(0编辑  收藏  举报