近期要对一个主要用来查询的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通常会分配固定大小的内存块来保存值,对于排序或基于内存的临时表,把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数据库中数据类型是定义列中可以存储什么类型的数据以及该数据的格式等属性的关键特性。...综上所述,了解和正确使用MySQL中的数据类型,对于数据库的性能优化、数据的准确性和管理的便利性都有重大影响。
在本篇中,我们将学习 MySQL 数据库开发的基础知识,包括数据类型、数据架构设计、索引设计、查询优化和事务处理等。 数据类型 MySQL 中有多种数据类型,包括整数类型、浮点数类型、字符串类型、日期时间类型等。...
MySQL数据库设计与优化是数据库管理中的重要环节,它关乎到系统的性能、稳定性和可扩展性。本讲座由叶金荣分享,主要涵盖了多个关键方面,包括规范、基础规范、命名规范、库表规范、字段规范、索引规范以及开发环境...
### MySQL数据类型全掌握 #### 一、概述 在数据库设计和开发过程中,正确选择数据类型对于确保数据的准确性和优化存储空间至关重要。MySQL作为一款广泛使用的开源关系型数据库管理系统,提供了丰富的数据类型来...
MySQL 数据类型详解 MySQL 数据类型是指在 MySQL 中存储数据的格式,包括整型、浮点型、...MySQL 数据类型的选择对数据库的性能和存储空间都有着重要的影响,因此选择合适的数据类型对数据库的设计和优化至关重要。
MySQL海量数据存储与优化 MySQL是一种关系型数据库管理系统,广泛应用于各个行业,包括互联网、金融、电信等领域。随着数据量的增长,MySQL的性能优化变得越来越重要。本文将详细介绍MySQL的架构原理、存储机制、...
MySQL和Oracle的数据类型则针对存储和操作数据库中的各种数据类型进行了优化。 MySQL的数据类型包括数值类型(如INT、DECIMAL)、字符串类型(如VARCHAR、TEXT)、日期和时间类型(如DATE、TIMESTAMP)以及二进制...
- **数据类型选择**:使用最适合数据特性的数据类型,避免不必要的空间浪费和处理复杂度。 - **范式化与反范式化**:范式化有助于减少数据冗余,提高数据一致性,但可能导致更多的JOIN操作;反范式化则可能牺牲...
MySQL 数据类型优化数据类型选择原则选择不会超过范围的最小类型占更少资源、CPU周期更少(整形比字符代价更低)使用简单的数据类型使用mysql内建类型存储日
综上所述,MySQL数据库的优化涉及到多个方面,包括数据库设计、SQL语句优化、数据配置以及硬件与操作系统配置等。通过综合运用这些优化方法,可以有效提升数据库系统的性能和稳定性,为用户提供更好的服务体验。
2. 使用合适的数据类型,如使用TINYINT代替INT节省空间。 3. 分区表和分片技术可以提高大数据量下的查询性能。 四、存储引擎选择 InnoDB存储引擎支持事务处理和行级锁定,适合并发环境;MyISAM则速度快,但不支持...
1.基础篇 1.1 explain执行计划 ...3.1优化表的数据类型逆规范化 3.2提高查询速度 4.锁问题 4.1MyISQM表锁 4.2InnoDB锁问题 5.优化MySQL Server 5.1MySQL体系结构概览内存管理及优化 5.2InnoDB log机制及优化
MySQL 数值型数据类型是 MySQL 中最基本和最常用的数据类型之一。该类型主要包括整型、小数和位类型。在本文中,我们将详细介绍 MySQL 数值型数据类型的概念、分类和使用方法。 一、整型 整型是 MySQL 中最基本的...
Mysql优化、定位执行效率低的SQL、索引底层实现原理、SQL场景分析、常用SQL优化、查询索引选择、数据类型优化、锁介绍
16. MYSQL如何次存储数据 17. MYSQL表类型 18. MYSQL行类型(专指IASM/MYIASM表) 19. MYSQL缓存 20. MYSQL表高速缓存工作原理 21. MYSQL扩展/优化-提供更快的速度 22. MYSQL何时使用索引 23. MYSQL何时不...
本教程将深入探讨MySQL中的数据类型和建库策略,这对于任何想要优化数据库性能和确保数据准确性的开发者来说都是至关重要的。 首先,我们来谈谈MySQL的数据类型。数据类型决定了存储在数据库中的数据的格式和类型。...
### MySQL 5.6 性能优化 #### 一、优化概述 在现代数据库管理中,MySQL作为一种广泛使用的开源关系型数据库管理系统,在诸多业务场景下扮演着重要角色。随着业务需求的增长和技术的发展,如何有效提升MySQL数据库...