首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

MySQL数据类型选择「建议收藏」

前言 在MySQL中,选择正确的数据类型,对于性能至关重要。 一般应从以下两个方面考量: 确定合适的大类型:数值、字符串、时间、二进制; 确定具体的类型:有无符号、取值范围、变长定长等。...在MySQL数据类型设置方面,尽量采用更小的数据类型,因为它们占用的存储空间更小,通常有更好的性能,花费更少的硬件资源。并且,尽量把字段定义为NOT NULL,避免使用NULL。...整数通常是最佳的数据类型,因为它速度快,并且能使用AUTO_INCREMENT。...建议用DATE数据类型来保存日期。MySQL中默认的日期格式是yyyy-mm-dd。 用MySQL的内建类型DATE、TIME、DATETIME来存储时间,而不是使用字符串。...当数据格式为TIMESTAMP和DATETIME时,可以用CURRENT_TIMESTAMP作为默认(MySQL5.6以后),MySQL会自动返回记录插入的确切时间。

82130
您找到你想要的搜索结果了吗?
是的
没有找到

MySQL数据类型的优化选择

,一个行的占用空间变长,但是在页内没有更多空间存储,MYISAM将行拆成不同片段存储,InnoDB分裂页使行可以放进页内; 适用:字符串最大长度比平均长度大很多;列的更新很少; Char:定长字符串(MySQL...会删除所有末尾空格) 优点:不易产生碎片 适用:存储密码的MD5值;经常变更的数据; 大型数据类型: Blob:二进制 Text:字符 特殊性:mysql将blob和text值当做一个独立的对象处理,当值太大时...,innodb在值内存储一个指针,外部存储区域存储实际的值;mysql对blob和text的排序,只对每列的最前max_sort_length进行排序;mysql不能将列的全部长度字符串进行索引,也不能使用这些索引进行排序...; 枚举类型ENUM: mysql在存储枚举类型时非常紧凑; Mysql在内部会将每个值在列表中的位置保存为整数,并且在表的.frm文件中保存“数字-字符串”的映射关系的查找表; 缺点:字符串列表是固定的...精度为秒; Timestamp(尽量使用):4字节;依赖于时区;保存1970.1.1以来的秒数;列默认为not null; Timestamp的特殊性:如果插入数据时没有指定第一个timestamp列的值,mysql

71120

MySQL建表数据类型选择

首先数据选择有几个简单原则: 更小的通常更好。一般情况下,应该尽量使用可以正确存储数据的最小数据类型。例如只需要存 0~200,tinyint unsigned 更好。...更小的数据类型通常更快,因为它们占用更少的磁盘、内存和 CPU 缓存,并且处理时需要的 CPU 周期也更少。 简单就好。简单数据类型的操作通常需要更少的 CPU 周期。...MySQL 可以为整数类型指定宽度,例如 int(11),对大多数应用这是没有意义的:它不会限制值的合法范围,只是规定了 MySQL 的一些交互工具(例如 MySQL 命令行客户端)用来显示字符的个数。...字符串类型: varchar 和 char 类型 varchar 类型用于存储可变长字符串,是最常见的字符串数据类型。...(准确来说是 MySQL 4.1 以后的版本 varchar 不会删除存储数据的末尾空格) blob 和 text 类型 blob 和 text 都是为了存储很大的数据而设计的字符串数据类型,分别采用二进制和字符方式存储

5.2K10

MySQL(1)——数据类型选择(一)

一、三个原则 更小的通常更好:在符合条件的情况下,选择最小的数据类型更好。因为它们占用更少的磁盘、内存和 CPU 缓存。 简单就好:简单的数据类型的操作通常需要更少的 CPU 周期。...尽量避免 NULL:如果查询中包含可为 NULL 的列,对 MySQL 来说更难优化,因为可为 NULL 的列使得索引、索引统计和值比较都更负责。...MySQL 可以为整数类型指定宽度,比如 INT(11),对大多数应用来说是没有意义的,对于存储来说也没有影响。 三、实数类型 可以使用 DECIMAL 存储比 BIGINT 还大的整数。...当存储 char 值时, MySQL 会删除所有的末尾空格 ② char 适合存储很短的字符串,或所有值都接近同一个长度 两者使用区别 ① 对于经常变更的列,使用 char 更好,因为定长的 char

1.1K20

MySQL优化:选择合适的数据类型

前言 MySQL支持的数据类型非常多,选择正确的数据类型对于获得高性能至关重要。不管存储哪种类型的数据,下面几个简单的原则都有助于做出更好的选择。...但是要确保没有低估需要存储的值的范围,因为在schema中的多个地方增加数据类型的范围是一个非常耗时和痛苦的操作。如果无法确定哪个数据类型是最好的,就选择你认为不会超过范围的最小类型。...在为列选择数据类型时,第一步需要确定合适的大类型:数字、字符串、时间等。下一步是选择具体类型。...很多MySQL数据类型可以存储相同类型的数据,只是存储的长度和范围不一样,允许的精度不同,或者需要的物理空间(磁盘和内存空间)不同。相同大类型的不同子类型数据有时也有一些特殊的行为和属性。...如果建表时采用数据类型的别名,然后用SHOW CREATE TABLE检查,会发现MySQL报告的是基本类型,而不是别名。

78810

MySQL数据类型选择性能比对

诸如表存储什么数据,列上使用的数据类型选择什么样的存储引擎等等。本文主要介绍针对表上列使用三种不同的数据类型来进行对比,以观察选择不同数据类型时,对于性能造成的影响。...存储:    每一列使用什么数据类型?需要索引吗? 引擎:    使用什么存储引擎呢? 数据筛选:    哪些列被频繁用作过滤条件?增删改查频率?...Leshami | http://blog.csdn.net/leshami | +---------+------------------------------+ 二、基于无索引情形比对 表上统计信息,mysql...统计信息不是很准确,如下图,基于bigint数据类型占用的磁盘你空间与char类型占用磁盘空间等同。...四、最终比对结果及结论 最终完整结果图: image.png 结论: 1)满足需求的前提使用更小长度的数据类型(更少磁盘占用,I/O,CPU,memory开销) 2)整型优先原则,使用简单数据类型

64620

MySQL调优之数据类型选择原则

本文涉及:高可用数据库设计时数据类型选择原则 在进行数据库设计时,如果能够选择最恰当的数据类型就可以为后期的数据库调优打好最坚实的基础 选择数据类型的原则 更小的通常更好 例如存储订单状态字段很多时候使用...越小的数据类型代表着占用越小的磁盘、内存和CPU,也就代表着越快的速度。...当然,不要为了追求小而不考虑实际的场景、通常选择一个不会超过范围的最小数据类型就好了 越简单越好 数据类型越简单操作所需要的CPU周期就越少,例如说ip地址通常使用int而不是varchar来存储...尽量避免NULL 包含NULL的列会使得索引、索引统计和值比较都变得复杂 各个数据类型占用的字节 数据类型 所占字节(byte) tinyint 1 smallint 2 medumint

57530

MySQL数据类型选择性能比对详解

诸如表存储什么数据,列上使用的数据类型选择什么样的存储引擎等等。本文主要介绍针对表上列使用三种不同的数据类型来进行对比,以观察选择不同数据类型时,对于性能造成的影响。...存储: 每一列使用什么数据类型?需要索引吗? 引擎: 使用什么存储引擎呢? 数据筛选: 哪些列被频繁用作过滤条件?增删改查频率?...Leshami | http://blog.csdn.net/leshami | +---------+------------------------------+ 二、基于无索引情形比对 表上统计信息,MySQL...统计信息不是很准确,如下图,基于bigint数据类型占用的磁盘你空间与char类型占用磁盘空间等同。...: 结论: 1)满足需求的前提使用更小长度的数据类型(更少磁盘占用,I/O,CPU,memory开销) 2)整型优先原则,使用简单数据类型 3)避免使用NULL字段,NULL字段很难查询优化、的索引需要额外空间

53410

MySQL性能优化(二):选择优化的数据类型

[选择优化的数据类型_logo.png] 前期回顾: MySQL性能优化(一):MySQL架构与核心问题 良好的设计是高性能的基石,应该根据系统的实际业务需求、使用场景进行设计、优化、再调整,在这其中往往需要权衡各种因素...,例如,数据库表究竟如何划分、字段如何选择合适的数据类型等等问题。...MySQL支持的数据类型非常之多,对于选择恐惧症的小伙伴而言,苦不可言。...在众多的数据类型面前,如何选择正确的数据类型,对于高性能是至关重要的。...本文将介绍如何选择优化的数据类型,来提高MySQL的性能,将会选取最为常用的类型进行说明,便于在实际开发中创建表、优化表字段类型时提供帮助。

1.3K00

MySql中varchar和char,如何选择合适的数据类型

背景 学过MySQL的同学都知道MySQL中varchar和char是两种最主要的字符串类型,varchar是变长的类型,而char是固定长度。...那关于如何选择类型就成为令人头疼的事,很多初学者为了保证业务兼容性强,存储字符串类型一律都是varchar类型。这是不妥的,需要根据varchar和char的特性来进行选择。...varchar和char数据类型的区别 varchar类型用于存储可变长的字符串,是比较常见常用的字符串数据类型,在存储的字符串是变长时,varchar更加节约空间。...在存储数据时,MySQL会删除所有文末的空格,所以,即便你存储的是:'abc ',注意这个字符串末尾是有空格的,也会在存储时把这个空格删掉,这点需要注意。...到2个字节存储长度信息 update语句可能会导致页分裂 char的优点: 定长的字符串类型,减少内存碎片 无需额外的内存空间去存储长度信息 char的缺点: 会删除列末尾的空格信息 参考: 《高性能MySQL

2.3K20

MySqlMySql数据类型

数据类型分类 对于数据类型分类,这里简单分为数值类型(如BIT,BOOL,INT),文本、二进制类型(如CHAR,VARCHAR),时间日期(DATE),String类型(如ENUM类型),这里简单了解一下即可...tinyint类型 用tinyint数据类型创建表t1: mysql> create table if not exists t1( -> num tinyint -> ); 插入tinyint...of range value for column 'num' at row 1 mysql> 用tinyint unsigned数据类型创建表t2: mysql> create table if not...反过来,我们如果已经有数据被插入到MySql中了,一定是插入的时候是合法的 所以MySql中一般而言,数据类型本身也是一种约束,约束程序员尽可能进行正确的插入,约束使用者,如果你不是一个很好的使用者,...bit数据类型的表t3: mysql> create table if not exists t3( -> id int, -> online bit(1) -> ); Query

23730

mysql 数据类型

一.数值类型 Mysql支持所有标准SQL中的数值类型,其中包括严格数据类型(INTEGER,SMALLINT,DECIMAL,NUMBERIC),以及近似数值数据类型(FLOAT,REAL,DOUBLE...对于小数点后面的位数超过允许范围的值,MySQL 会自动将它四舍五入为最接近它的值,再插入它。 DECIMAL 数据类型用于精度要求非常高的计算中,这种类型允许指定数值的精度和计数方法作为选择参数。...忽略 DECIMAL 数据类型的精度和计数方法修饰符将会使 MySQL 数据库把所有标识为这个数据类型的字段精度设置为 10,计算方法设置为 0。...三.日期和时间类型  在处理日期和时间类型的值时,MySQL 带有 5 个不同的数据类型可供选择。它们可以被分成简单的日期、时间类型,和混合日期、时间类型。...这样在面对具体应用时,就可以根据相应的特来来选择合适的数据类型,使得我们能够争取在满足应用的基础上, 用较小的存储代价换来较高的数据库性能。

2.7K40

MySQL数据类型

MySQL不同存储引擎可能会有不同。下面的内容以InnoDB为主。 选择数据类型的步骤 确定合适的大类型:数字、字符串、时间、二进制 确定具体的类型:有无符号、取值范围、变长定长等。...MySQL检索CHAR不会使用末尾的空格。(列是定长的,MySQL没有存储写入的字符串有多长,只好一刀切,末尾的空格都忽略掉。) VARCHAR末尾的空格不会被“干掉”,检索的时候会用到。...MySQL只能对BLOB和TEXT的前面max_sort_length各字符进行排序和索引。 BLOB和TEXT都不能有default value。...而MySQL在检索BIT的时候会将其当做字符串,而不是整数,这可能会导致一些奇怪的行为。 不建议使用这三个类型:用整数代替。 一些原则 选择最小的满足需求的数据类型。...一般情况下,应该尽量使用可以正确存储数据的最小数据类型。 简单就好。

2.5K40
领券