数据类型占用空间取值范围(有符号)取值范围(无符号)小整数型
tinynt1字节-128~1270~255大整数型
smallint2字节-32768~327670~65535大整数型
MEDIUMINT3字节±83886080~16777215大整数型
INT或INTEGER4字节±21474836480~4294967295大整数型
BIGINT8字节±92233720368547758080~18446744073709551615极大整数型

其中int是使用最广泛的,本文只针对整数型的数据类型取值范围做了一个整理.如果需要查看完整的数据类型比较,请参阅:mysql的数据类型一文.

属性:

unsigned:无符号,列的值从0开始,不为负

zerofill:固定宽度的数字,用0填充至固定宽度,例如学号1会变成0001 注意:zerofill属性默认决定列为unsigned属性(不为负)

使用例子:

create table tablename(
列1    TINYINT    unsigned    默认值,   //整数类默认是带负号的,如果数值没有符号,可以设置为unsigned
列2    TINYINT(5)    zerofill    默认值       // 括号内5意思代表自动补充0后的字符宽度,例如学号1,则显示00001
性别   enum('男','女')                          // 括号内5意思代表自动补充0后的字符宽度,例如学号1,则显示00001
)

使用小技巧:

存放时间:虽然mysql有存放时间的数据类型,但是我们发现很多cms系统也好,大型网站也好.大多数都是使用的int来存放.使用10位的时间戳来存放时间不管是排序的效率,还是计算时间间隔时写程序代码都是非常方便的.只是看起来不那么直观.需要展示的时候转换一下即可.因为转换起来非常方便!

存放ip地址:可以把ip地址转换为整数型来存放.一般情况下没这个必要.因为看起来不直观.一个char也占不了多少空间,但是对于非常庞大的ip数据来说.能优化一点是一点.

存性别的数据类型选用整数型要比字符串效率高,而且节省空间.一个 tinynt足够用




相关推荐

C# 的数据类型 取值范围

值类型变量可以直接分配给一个值。它们是从类 System.ValueType 中派生的。值类型直接包含数据。比如 int、char、float,它们分别存储数字、字符、浮点数。当您声明一个 int 类

20亿行测试 sqlite最多可以容纳多少数据 以及插入速度 每个文件最大多大?

据说 数据库文件最大支持 281 T每个数据库由一个或多个数据页组成,一个数据库内的所有数据页大小都相同,但是不同的数据库可以使用不同的数据页大小,范围从 512 到 65536 字节。从 sqlit

php查看mysql 表行 表自增id 数据最大id

查看自增id $sql="select Auto_increment from information_schema.tables where TABLE_SCHEMA='{$数据库

mysql数据类型

mysql创建表语句格式:create table tablename(列1 int unsigned,//unsigned意思是无符号。不为负。列2 列类型 列属性 默认值,列3 列类型

mysql效率研究(一):int(5)与 int(10) int(11)区别

/*int(5)与 int(10) 与 int(11) 的区别*/ //首先创建 三个表 分别是 in5,in10,in11 都只有一个字段 $sql="create table

mysql取随机随机范围之间随机

例如:取随机 2000-5000之间的随机数:UPDATE zbp_post SET log_ViewNums = FLOOR(2000 + RAND() * (5000-2000+1))扩展:php

mysql sqlite表内最大id语句 取最新插入id表行

取最大ID方法一:select MAX(id) from 表名 方法二:select * from sqlite_sequence where name='表名' 以上两种方法 500

mysql最大限制

以下内容仅是猜测:一般习惯每建一个表 第一个字段都是id,且是自增的所以感觉可能会取决于自增id的数据类型一般自增id都用int 默认就是20多亿行 如果加了 unsigned 就是40多亿行 超过

mysql sqlite 删除旧数据 只保留100条

完整语句:delete from _sql执行记录 where id in (select id from _sql执行记录 order by id desc limit 100,100000)del

mysql迁移,mysql数据导出,数据导入,mysql备份 mysql5.7数据导入到mysql8.0

数据导出/数据备份mysqldump -u 用户名 -p 数据库名 > 数据库备份文件.sql执行后,它会要求你输入密码。输入后即可导出成功如果数据比较大,可以考虑添加一些适合的选项 例如 --