Chinaunix首页 | 论坛 | 博客
  • 博客访问: 371281
  • 博文数量: 166
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 1640
  • 用 户 组: 普通用户
  • 注册时间: 2015-05-05 11:44
个人简介

文章不在长,坚持不懈记录下努力前行的脚步

文章分类

全部博文(166)

文章存档

2017年(19)

2016年(59)

2015年(88)

我的朋友

分类: Mysql/postgreSQL

2015-06-17 17:53:37

1、整数类型
(1)显示宽度与存储不相关,存储只与类型相关
2、实数类型
(1)decimal可以用来存储长度比bigint还大的数
(2)建议值指定数据类型,不指定精度
(3)浮点数通常比定点数使用更少的空间存储
(4)用bigint代替decimal--数据量大是的性能
3、字符型类型
(一)varchar
(1)varchar使用1到2个额外字节记录字符串长度
(2)update可能分裂页
(3)下列情况使用varchar比较适合
a、字符串列的最大长度比平均长度大很多
b、update操作很少
c、使用了utf-8这样复杂的字符集
(4)5.0后mysql存储和检索时会保留末尾空格
(5)innodb会把过长的carchar存储为blob
(二)char
(1)存储char时,mysql会删除所有的末尾的空格
(2)cahr值会根据需要采用空格填充以满足比较;
(3)存储比较短的列,char比较有优势
(4)经常改变的列,char也比varchar更好,因为产生的碎片较少;
varchar(5)与varchar(200)的区别
内存分配固定大小--内存临时表、磁盘临时表排序
建议:值分配真正需要的空间
4.blob和text
(1)如果查询使用了blob或text列并且需要使用隐式临时表,将不得不使用MyISAM磁盘临时表,即使只有几行也是如此;
(2)尽量避免使用blob和text类型
(3)将用到blob字段的地方用substring将列值转换为字符串--这样可以使用内存临时表
(4)如果explain执行计划的extra列包含"using temporary",则说明这个查询使用了隐式临时表


阅读(1393) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~