MySQL数据类型优化设计
来源:互联网 发布:雉兔同笼编程 编辑:程序博客网 时间:2024/05/28 04:54
我们在优化数据库表的数据类型时,基本遵循以下三个原则:
①更小的通常更好
我们应该使用更合适的最小的数据类型
②简单就好
简单的数据类型通常需要更少的CPU周期,例如:整型的效率是优于字符操作
③避免有null值存在
查询中包含可为null的列,对于MySQL来说更难优化.有null值的列使得索引,索引统计,值都更加复杂.
所以如果在本列加入索引,则本列应该加入not null的限制条件.
除了以上三个原则,我们还应该选用合适的数据类型,MySQL的数据类型分为以下几种:
1.整数类型
有TINYINT,SMALLINT,MEDIUMINT,INT,BIGINT五种类型,分别使用8,16,24,32,64位的存储空间.对应1,2,3,4,8个字节
例如:TINYINT的可存储范围是:-128~127.
另外MySQL可以为整型设定宽度,如INT(11),但是它不会限制值的合法范围,只是规定了一些客户端用来显示的个数.对于存储和计算来说,INT(1)和INT(11)是相同的.
2.实数类型
实数带有小数部分,我们也可以使用Decimal来存储比BIGINT更大的值.FLOAT使用4个字节,DOUBLE使用8个字节,DECIMAL可以自己设定长度,最多可以使用65个数字.
3.字符串类型
VARCHAR和CHAR
其中VARCHAR是可变的,他需要使用1或者2个字节来记录字符串的长度.例如:VARCHAR(10)就需要使用11个字节来存储,而VARCHAR(1000)就需要使用两个字节来存储.
CHAR是定长的,MySQL总是根据定义的字符串长度分配足够的空间.
BLOB和TEXT类型
这两个类型都是为存储很大数据而设计的字符串数据类型,分别是采用二进制和字符的方式来进行存储.当TEXT或BLOB过大时, 每个值在行内需要1-4个字节来存储一个指针,然后在外部存储区域存储实际的值.避免使用这两种类型.
4.时间和日期类型
DATETIME
这个类型能保存大范围的值,精度为秒.把日期和时间封装到YYYYMMDDHHMMSS的整数里.
TIMESTAMP
等同于UNIX的时间戳,时间效率高于DATETIME
- MySQL数据类型优化设计
- MySQL优化----数据类型优化
- MySQL系列—Scheme设计与数据类型优化
- mysql 数据类型优化
- MySQL数据类型优化
- MYSQL数据类型优化
- MySQL优化---数据类型
- [MySQL] 基础数据类型优化
- 【MySQL】MySQL的数据类型优化
- mysql优化之选择数据类型
- MySQL数据类型与架构优化
- Mysql 选择优化的数据类型
- 读书笔记:MySQL数据库 数据类型优化
- MySQL选择优化的数据类型
- Mysql数据类型浅析和优化
- MySQL:Schema与数据类型优化
- MySQL数据类型理解和优化
- mysql schema设计优化
- PHP的类和对象
- Android使用SpannableString实现文本框里插入表情
- iOS重要框架
- 报错:org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'PPTServic
- [LeetCode] 78. Subsets
- MySQL数据类型优化设计
- Systemd及service文件解析
- Log4j详细使用教程
- Xen 超级调用 和 事件通道
- 运行tomcat8w.exe未安装指定的服务
- caffe常见优化器使用参数
- 第一次使用Linux下安装MySQL5.7遇到的一些列问题
- Font Awesome图标安装及使用方法
- gitlab “bad index file sha1 signature fatal: index file corrupt”错误