mysql优化-- int类型解析及其优化
2016-03-28 17:36
645 查看
大家都知道mysql的数据类型非常多,但是在设计数据表的时候,要想有不错的性能,请注意一下几点:
1:数据类型越小越好:例如:如果只存0-200的整数 建议使用:tinyint unsinged 更好
更小的数据类型占用的占用的更少的磁盘,缓存,Cpu,并且处理数据时使用CPU的周期也更少
2:简单更好 例如:整数比字符串的操作更低,存储IP地址或者时间时候 少用字符串,因为字符集和校对规则使字符串比整形更复杂
3:尽量少使用NULL MySQL处理NULL字段很复杂,比较的时候,如果这个字段有索引,会耗时
下面说一下INT字段的优化:
int 有: tinyint 1个字节 存储范围 -128到127 unsigned 0-255
smallint 2个字节 存储范围 -32,768 到 32,767 unsigned 0-65535
mediumint 3个字节 存储范围 -8388608到8388607 unsigned 0-16777215
int 4个字节 存储范围 -2,147,483,648到 2,147,483,647 unsigned 0到4294967295
biginr 8个字节 存储范围 -9223372036854775808到9223372036854775807 unsigned 0-18446744073709551615
优化注意事项:
1:int(3) =int(10) int(n) 对数据存储的大小没有限制 ,限制存储范围的为数据类型 n:左右只是在你设置字段填充0的时候 不足N的位数的时候填充0
2:int(3) > tiny(3) int(3)在存储的时候占用磁盘要比 tinyint(3)要大 能选择tinyint 不选则samllint
3:可以用字段的unsigned提升存值范围,无符号和有有符号 使用相同的空间,有相同的性能。
4:如果一个字段中只有几个固定的整数 尽量使用枚举 不用 整数类型
1:数据类型越小越好:例如:如果只存0-200的整数 建议使用:tinyint unsinged 更好
更小的数据类型占用的占用的更少的磁盘,缓存,Cpu,并且处理数据时使用CPU的周期也更少
2:简单更好 例如:整数比字符串的操作更低,存储IP地址或者时间时候 少用字符串,因为字符集和校对规则使字符串比整形更复杂
3:尽量少使用NULL MySQL处理NULL字段很复杂,比较的时候,如果这个字段有索引,会耗时
下面说一下INT字段的优化:
int 有: tinyint 1个字节 存储范围 -128到127 unsigned 0-255
smallint 2个字节 存储范围 -32,768 到 32,767 unsigned 0-65535
mediumint 3个字节 存储范围 -8388608到8388607 unsigned 0-16777215
int 4个字节 存储范围 -2,147,483,648到 2,147,483,647 unsigned 0到4294967295
biginr 8个字节 存储范围 -9223372036854775808到9223372036854775807 unsigned 0-18446744073709551615
优化注意事项:
1:int(3) =int(10) int(n) 对数据存储的大小没有限制 ,限制存储范围的为数据类型 n:左右只是在你设置字段填充0的时候 不足N的位数的时候填充0
2:int(3) > tiny(3) int(3)在存储的时候占用磁盘要比 tinyint(3)要大 能选择tinyint 不选则samllint
3:可以用字段的unsigned提升存值范围,无符号和有有符号 使用相同的空间,有相同的性能。
4:如果一个字段中只有几个固定的整数 尽量使用枚举 不用 整数类型
相关文章推荐
- 无法远程访问 MySQL
- MySQL 数据表创建详细SQL语法
- 解决MySql Error Code: 2006 – MySQL 服务器已离线 错误
- MySQL数据库相关操作
- 安装完Mysql,mysql -u root -p出现ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using pass
- MYSQL order by排序与索引关系总结
- 常见的mysql进程state
- MySQL数据库的环境配置和基本操作windows
- 正文字体大小:大 中 小 解决configure: error: Cannot find libmysqlclient under /usr
- 如何在windowns终端用命令对mysql进行导入导出
- mysql配置的讲解 mysql的root密码重置 mysql的登录
- MySql Host is blocked because of many connection errors; unblock with 'mysqladmin flush-hosts' 解决方法
- 安装MySQL在最后的start service停住了解决方法
- Mysql 修改密码
- MySQL备份学习
- Mysql支持的数据类型(总结)
- MySQL允许远程访问的设置
- MySQL系列:事务机制
- MySQL远程访问权限,允许远程连接
- mysql之limit m,n