澳门银河网上官方赌场_老品牌值得信赖

ITKeyword,专注技术干货聚合推荐

注册 | 登录

MySql 常用的数据类型优化

budairenqin 分享于

2020腾讯云限时秒杀,爆款1核2G云服务器99元/年!(领取2860元代金券),
地址https://cloud.tencent.com/act/cps/redirect?redirect=1062

2020阿里云最低价产品入口+领取代金券(老用户3折起),
入口地址https://www.aliyun.com/minisite/goods

推荐:MySQL的基本数据类型与数据类型优化

  1.选择优化的数据类型的标准   1)更小的通常更好。   一般情况下,应该尽量使用可以正确存储数据的最小数据类型。更小的数据类型通常更快,因为他们占

近期要对一个主要用来查询的MySql DB进行优化,所以从书上以及网络上总结了些MySql数据类型相关的优化。

-使用简单的数据类型
越简单的数据类型,需要的CPU周期就越少。
比较两个整数的代价肯定小于比较字符,因为字符集和排序规则让字符更复杂。
日期和时间尽量用MySql内奸的类型来保存,避免使用字符串

-要建索引的列避免NULL
当可空列被索引时,每条记录都需要一个额外的字节。MySql难以优化引用了可空列的查询,这样的列会使索引更加复杂
可以用 0、空字符串等代替NULL,不过把NULL列改为NOT NULL并不会带来明显的性能提升,不要期望太高。

-整数
整数在MySql中有以下类型,后面的注释是他们需要多少位的存储空间

TINYINT // 8位
SMALLINT // 16位
MEDIUMINT // 24位
INT // 32位
BIGINT // 64位

虽然MySql可以对整数类型定义宽度(如:INT(10)),但它不会限制值的范围,对于存储和计算INT(1)和INT(10)是一样的,没有优化的作用

-字符串(仅限于InnoDB的VARCHAR和CHAR)
VARCHAR 可变长度的字符串
  适合最大长度远大于平均长度,并且很少发生更新的场景。(更新的时候可能引起额外工作:如果行的长度增加并不再适合于原始位置时,InnoDB可能要进行分页)
还有要注意的是,VARCHAR要尽量分配真正需要的空间,

推荐:MySQL查询优化(数据类型与效率)

在大多数情况下,你所关注的是SELECT查询的优化,因为SELECT查询是最常见的查询类型,而且如何优化它们又不是太简单。与此形成对比,把数据载入数据库的操作就相

因为mysql通常会分配固定大小的内存块来保存值,对于排序或基于内存的临时表,把VARCHAR限制的更小显然更好。
CHAR固定长度的字符串
  适合存储很短或长度基本相同的字符串。对于经常被更新的值,固定长度的行不易产生碎片。

-ENUM
有时可以用ENUM代替字符串,ENUM可以存储65535个不同字符串,还有mysql会根据列表中值的数量,把它压缩到1到2个字节中

-时间
DATETIME
  精度为秒,mysql把它封装在一个格式为YYYYMMDDHHMMSS的整数中,占8个字节
TIMESTAMP
  格林尼治时间以来的秒数,精度依然为秒,占4个字节,mysql有两个函数:FROM_UNIXTIME和UNIX_TIMESTAMP来让日期和时间戳相互转换

由于TIMESTAMP比DATETIME更省空间,通常应该优先使用TIMESTAMP。
另外mysql事件的最细粒度为秒,如果需要秒以下精度的时间,可以使用BIGINT类型保存为时间戳

-特殊类型的数据
以前经常用VARCHAR(15)列来保存IP地址。其实IP地址实际是一个无符号的32为整数,而不是字符串。使用小数点进行分割纯粹是为了增加可读性。应该使用无符号整数来保存IP地址,
mysql提供了INET_ATON和INET_NTOA函数在IP地址和整数之间相互转换。

推荐:高性能mysql(一)优化数据类型

良好的逻辑设计和物理设计是高性能的基石,应该根据系统将要执行的查询语句来设计schema,这往往要权衡各种因素。 一,选择优化的数据类型: 更小的通常更好,简

近期要对一个主要用来查询的MySql DB进行优化,所以从书上以及网络上总结了些MySql数据类型相关的优化。 -使用简单的数据类型 越简单的数据类型,需要的CPU周期就越少。 比较两个整数的代价肯定

相关阅读排行


相关内容推荐

最新文章

×

×

请激活账号

为了能正常使用评论、编辑功能及以后陆续为用户提供的其他产品,请激活账号。

您的注册邮箱: 修改

重新发送激活邮件 进入我的邮箱

如果您没有收到激活邮件,请注意检查垃圾箱。

澳门银河网上官方赌场