一.选择优化的数据类型
1.更小的通常更好:如果只要保存1~200,tinyint unsigned更好.因为占用更小的内存和磁盘空间.
2.简单就好: 简单数据类型需要更小的CPU时间周期.例如:整型比字符操作代价更低(字符集的问题).使用mysql自带类型取代字符串(date,datetime),使用整型存储IP.
3.尽量避免Null:单列索引无法储null值,复合索引无法储全为null的值.Innodb使用单独的位(bit)存储Null值,所以对于稀疏结构(列中大部分都是Null)有很好的空间效率.(不适用myisam).
4.mysql数据类型可以存储相同类型的数据,只是存储的长度和范围不一样,允许的精度不同,需要的空间不同.
例如:Datetime和timestamp可以存储相同类型的数据,然而timestamp只占用一半的空间.但是它有一个时间范围.
1.1 整数类型
整数可以使用: tinyint,smallint,mediumint,int,bigint.分别使用8,12,16,24,32,64位存储空间.存储范围是-2的n-1次方到2的n-1次方.
1.2 实数类型
Decimal可以存储比bigint更大的整数.(最多允许65个数字)
1.3 字符串类型
varchar
比定长的更省空间,如果设置了ROW_FORMAT=FIXED 就不起作用.varchar需要额外一个或两个字节记录字符串长度.
下列情况使用varchar是合适的: 字符串列的最大长度比平均长度大很多; 列的更新很少;使用 UTF8这样的字符集,每个字符使用不同字节数存储。
char
char类型是定长的:char会删除数据末尾的所有空格.
enum
使用枚举代替字符类型.
例如: create table test { e enum('fish','apple','pear') not null}.
select e + 0 from test 结果会是数字
二.加快alter table速度
alter table modify column .... 会拷贝整张表到另一张表
alter table alter column... 只修改.frm文件而不涉及表数据,这个操作很快
三.快速创建myisam索引
alter table tablename disable keys;//禁用索引
load data;
alter table tablename enable keys;//启用索引
不过这种方法对于唯一索引不起作用
相关推荐
总的来说,Schema和数据类型优化是数据库设计的基础,通过合理的规划和选择,可以有效提升数据库的性能,减少资源消耗,确保系统的高效运行。同时,理解并运用这些知识,也能帮助你在遇到性能问题时,找到合适的解决...
2. 使用合适的数据类型,如使用TINYINT代替INT节省空间。 3. 分区表和分片技术可以提高大数据量下的查询性能。 四、存储引擎选择 InnoDB存储引擎支持事务处理和行级锁定,适合并发环境;MyISAM则速度快,但不支持...
sys schema自MySQL 5.7版本引入,它的设计目的是简化对performance_schema的使用,提供更直观、易于理解的视图和存储过程,帮助DBA更好地理解和优化MySQL服务器的运行状态。 1. **sys schema的数据来源** sys ...
mysql优化的脑图文件,已经涵盖了几乎所有情况,分别从“性能监控”,“schema与数据类型优化”,“索引优化”,“查询优化”,“分区表”,“参数设置”这几个方面展开的脑图,是您查找资料的好工具。当然,如果你...
3. **性能监控与优化**:`information_schema`还包含了一些性能相关的表,可以帮助管理员监控数据库的运行状况并进行性能调优。 #### 三、information_schema的主要表 `information_schema`包含多个表,每个表都...
《FriendFeed如何使用MySQL存储无Schema数据》 在FriendFeed的实践中,他们面临的问题是如何在不断增长的用户基数和数据量下,支持新功能的添加,同时不改变数据库的基础架构和已有的海量数据。这个问题的核心在于...
2. 数据类型:MySQL支持多种数据类型,如整数类型(TINYINT、INT、BIGINT)、浮点类型(FLOAT、DOUBLE)、字符串类型(CHAR、VARCHAR、TEXT)、日期和时间类型(DATE、TIME、DATETIME、TIMESTAMP)等。 3. SQL语言...
MySQL Schema Sync是一个用于同步MySQL数据库表结构的工具,它能够帮助开发者在多个数据库实例之间保持数据表结构的一致性。这个工具特别适用于那些需要在开发、测试和生产环境之间进行数据库迁移或者版本控制的场景...
MySQL数据库在设计和优化时,数据类型的选择与schema的规划起着至关重要的作用。数据类型不仅影响存储空间,还直接影响查询速度和系统性能。本文主要探讨了如何在MySQL中选择合适的数据类型以及优化schema。 首先,...
第1章 mysql 架构与历史 1 第2章 mysql 基准测试 35 第3章 服务器性能剖析 67 第4章 schema 与数据类型优化 111 第5章 创建高性能的索引 141 第6章 查询性能优化 195 第7章 mysql 高级特性 259 第8章 优化服务器设置...
数据类型优化 最基本的优化之一就是使表在磁盘上占据的空间尽可能小。这能带来性能非常大的提升,因为数据小,磁盘读入较快,并且在查询过程中表内容被处理所占用的内存更少。同时,在更小的列上建索引,索引也会...
第4章 schema 与数据类型优化 111 第5章 创建高性能的索引 141 第6章 查询性能优化 195 第7章 mysql 高级特性 259 第8章 优化服务器设置 325 第9章 操作系统和硬件优化 377 第10章 复制 433 第11章 可扩展的mysql ...
MySQL是世界上最受欢迎的开源关系型数据库管理系统之一,其性能分析和优化是数据库管理员及开发者日常工作中至关重要的一环。本文将深入探讨MySQL性能分析的关键技术、优化策略以及如何进行调整。 一、性能分析 1....
第四章schema与数据类型优化;第五章创建高性能索引;第六章查询性能优化;第七章mysql高级特性;第八章优化服务器设置;第九章操作系统和硬件优化;第十章复制;第十一章可扩展的mysql;第十二章高可用性;第十三章...
MySQL优化是数据库管理中至关重要的任务,涉及到多个层面,包括SQL语句的编写、系统配置、存储引擎选择以及数据类型优化等。以下是对这些关键点的详细解释: 首先,MySQL Server的核心组件包括连接器、分析器、优化...
《Effective MySQL之SQL语句最优化》是一本深入探讨如何提升数据库性能,特别是针对SQL查询进行优化的专业书籍。在数据库管理中,SQL语句的优化是至关重要的,它直接影响到系统的响应速度和整体效率。本篇文章将依据...
MySQL性能优化是数据库管理中的关键环节,特别是在高并发场景下,优化MySQL的性能对于提升系统整体效率至关重要。本教程将深入探讨MySQL性能优化的各个方面,帮助你理解并实践有效的优化策略。 首先,我们来了解**...
了解了数据量大小后,可以采取一系列优化策略,如删除无用的数据、压缩存储、优化索引、调整数据类型等,以减少空间占用并提升性能。 总结,统计MySQL数据量大小是一项关键的数据库管理任务,它涉及到对`CONCAT`...
所以我们后续再讨论这两个问题,先放过去,直接进行优化schema和数据类型的这一话题。 优化数据类型 优化数据类型,基本上是用在建表和修改表的场景上,整个优化数据类型这一话题说下来,基本上都是集中于:对于DB...