MySQL数据类型优化—整数类型优化选择

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL数据类型优化—整数类型优化选择相关的知识,希望对你有一定的参考价值。

原文:http://bbs.landingbj.com/t-0-240002-1.html

 

在设计数据库的时候,整数类型的使用时不可避免的如ID,类型等。

在选择整数的同时主要是考虑是数据范围,如是否带符号,最大存储值。


一、有误符号

在无符号unsigned类型比有符号的整数多一倍。



tinyint 范围 -128~127

tinyint unsigned 范围 0~255

这里的tinyint unsigned比tinyint 最大数多一倍,其它的同理。

如果我们的范围 1-200,如果使用带符号的整数 tinyint是不能满足的,使用只有选择更宽的字段

但使用tinyint unsigned就可以满足。


二、整数范围

tinyint  ~百  

smallint ~万 

mediumint ~千万

int ~10亿

bigint ~ 10亿x10亿

数据详情范围

tinyint 8 bits 0 ~ 255 -128 ~ 127
smallint 16 bits 0 ~ 65535 -32768 ~ 32767
mediumint 24 bits 0 ~ 16777216 -8388608 ~ 8388607
int 32 bits 0 ~ 4294967295 -2147483648 ~ 2147483647
bigint 64 bits 0 ~ 18446744073709551615 -9223372036854775808 ~ 9223372036854775807


三、如何选择

这里的数据主要是大楷的数据范围比如100左右用tinyint ,有时我们需要通过计算,比如我们发布的一片新闻

统计它的访问量,如:1000(日访问量)*365(天)*10(年)=36500000(千万) 这是数据是大于mediumint,而在int范围类

但如果我们考虑一下,一篇新闻能到日访问量到1000而且持续10年,如果能那就选择int,如果可能性不大mediumint可能是最好的选择。

有时我们都图略的这些范围的分析,反正只要是整数,要么int或者bigint。在不是很影响性能的情况下,节约设计分析。

当时还有一个设计误区其实用 int(x)来作为整数范围,原来发布过相应的博客数据库-整数类型宽度—int(3)与int(11)区别 来论证过!

原文地址:http://blog.yi18.net/articles/2014/04/06/1396777140197.html
















































以上是关于MySQL数据类型优化—整数类型优化选择的主要内容,如果未能解决你的问题,请参考以下文章

Mysql数据类型的优化选择

《高性能MySQL》——Schema与数据类型优化(笔记)

MySQL 基础数据类型优化(如何选择数据类型)

#yyds干货盘点# MySQL性能优化:选择优化的数据类型

MySQL中的数据类型和schema优化

MySQL之Schema与数据类型优化