- 浏览: 49958 次
- 性别:
文章分类
- 全部博客 (103)
- 一致性哈希算法 (1)
- 云计算 (2)
- Cassandra学习 (2)
- Java网络通信与笔记 (14)
- ZooKeeper学习 (1)
- HBase学习 (1)
- Sqoop学习 (1)
- Java网页开发之 (2)
- Java网络通信框架 (5)
- (memcached)分布式内存对象缓存系统 (1)
- Redis学习 (5)
- Shell学习 (14)
- Linux学习 (10)
- MySQL优化 (17)
- C++ (7)
- HTML5 (5)
- Android学习 (5)
- 网络 (2)
- Node.js (1)
- D3.js (1)
- R语言学习 (3)
- Spark (1)
- CAN协议 (2)
- 解决方案 (0)
最新评论
优化表的数据类型
表需要使用何种数据类型,是需要根据应用来判断的。虽然应用设计的时候需要考虑字段的长度留有一定的冗余,但是不推荐让很多字段都留有大量的冗余,这样即浪费存储也浪费内存。
我们可以使用PROCEDURE ANALYSE()对当前已有应用的表类型的判断,该函数可以对数据表中的列的数据类型提出优化建议,可以根据应用的实际情况酌情考虑是否实施优化。语法:
SELECT * FROM tbl_name PROCEDURE ANALYSE();
SELECT * FROM tbl_name PROCEDURE ANALYSE(16,256);
输出的每一列信息都会对数据表中的列的数据类型提出优化建议。第二个例子告诉PROCEDURE ANALYSE()不要为那些包含的值多于16个或者256字节的ENUM类型提出建议。如果没有这样的限制,输出信息可能很长;ENUM定义通常很难阅读。
在对字段类型进行优化时,可以根据统计信息并结合应用的实际情况对其进行优化。
通过拆分,提高表的访问效率
这里我们所说的拆分,主要是针对Myisam类型的表,拆分的方法可以分成两种情况:
1) 纵向拆分:
纵向拆分是只按照应用访问的频度,将表中经常访问的字段和不经常访问的字段拆分成两个表,经常访问的字段尽量是定长的,这样可以有效的提高表的查询和更新的效率。
2) 横向拆分:
横向拆分是指按照应用的情况,有目的的将数据横向拆分成几个表或者通过分区分到多个分区中,这样可以有效的避免Myisam表的读取和更新导致的锁问题。
逆规范化
数据库德规范化设计强调数据的独立性,数据应该尽可能少地冗余,因为存在过多的冗余数据,这就意味着要占用了更多的物理空间,同时也对数据的维护和一致性检查带来了问题。
但是对于查询操作很多的应用,一次查询可能需要访问多表进行,如果通过冗余纪录在相同表中,更新的代价增加不多,但是查询操作效率可以有明显提高,这种情况就可以考虑通过冗余数据来提高效率。
使用冗余统计表
使用create temporary table语法,它是基于session的表,表的数据保存在内存里面,当session断掉后,表自然消除。
对于大表的统计分析,如果统计的数据量不大,利用insert, select将数据移到临时表中比直接在大表上做统计要效率更高。
选择更合适的表类型
1、如果应用出现比较严重的锁冲突,请考虑是否更改存储引擎到innodb,行锁机制可以有效的减少锁冲突的出现。
2、如果应用查询操作很多,且对事务完整性要求不严格,则可以考虑使用Myisam存储引擎。
表需要使用何种数据类型,是需要根据应用来判断的。虽然应用设计的时候需要考虑字段的长度留有一定的冗余,但是不推荐让很多字段都留有大量的冗余,这样即浪费存储也浪费内存。
我们可以使用PROCEDURE ANALYSE()对当前已有应用的表类型的判断,该函数可以对数据表中的列的数据类型提出优化建议,可以根据应用的实际情况酌情考虑是否实施优化。语法:
SELECT * FROM tbl_name PROCEDURE ANALYSE();
SELECT * FROM tbl_name PROCEDURE ANALYSE(16,256);
输出的每一列信息都会对数据表中的列的数据类型提出优化建议。第二个例子告诉PROCEDURE ANALYSE()不要为那些包含的值多于16个或者256字节的ENUM类型提出建议。如果没有这样的限制,输出信息可能很长;ENUM定义通常很难阅读。
在对字段类型进行优化时,可以根据统计信息并结合应用的实际情况对其进行优化。
通过拆分,提高表的访问效率
这里我们所说的拆分,主要是针对Myisam类型的表,拆分的方法可以分成两种情况:
1) 纵向拆分:
纵向拆分是只按照应用访问的频度,将表中经常访问的字段和不经常访问的字段拆分成两个表,经常访问的字段尽量是定长的,这样可以有效的提高表的查询和更新的效率。
2) 横向拆分:
横向拆分是指按照应用的情况,有目的的将数据横向拆分成几个表或者通过分区分到多个分区中,这样可以有效的避免Myisam表的读取和更新导致的锁问题。
逆规范化
数据库德规范化设计强调数据的独立性,数据应该尽可能少地冗余,因为存在过多的冗余数据,这就意味着要占用了更多的物理空间,同时也对数据的维护和一致性检查带来了问题。
但是对于查询操作很多的应用,一次查询可能需要访问多表进行,如果通过冗余纪录在相同表中,更新的代价增加不多,但是查询操作效率可以有明显提高,这种情况就可以考虑通过冗余数据来提高效率。
使用冗余统计表
使用create temporary table语法,它是基于session的表,表的数据保存在内存里面,当session断掉后,表自然消除。
对于大表的统计分析,如果统计的数据量不大,利用insert, select将数据移到临时表中比直接在大表上做统计要效率更高。
选择更合适的表类型
1、如果应用出现比较严重的锁冲突,请考虑是否更改存储引擎到innodb,行锁机制可以有效的减少锁冲突的出现。
2、如果应用查询操作很多,且对事务完整性要求不严格,则可以考虑使用Myisam存储引擎。
发表评论
-
基于Hash算法的Mysql分表处理
2015-10-29 00:58 582下面为您介绍的Mysql ... -
数据库中表散列
2015-10-29 00:52 589数据库中的散列法 ... -
mysql大数据高并发处理
2015-10-26 22:00 427一、数据库结构的设计 ... -
优化SQL查询:如何写出高性能SQL语句
2015-10-17 17:41 445优化SQL查询:如何写出高性能SQL语句 这个问题 ... -
MySqL性能优化
2015-09-06 21:26 0I 硬件配置优化 Ø CPU选择:多核 ... -
Mysq日志管理(错误日志、查询日志、慢查询日志)
2015-09-06 21:01 0错误日志 记录内容:包含了当mysqld启动和停止时,以及服 ... -
MySql均衡负载
2015-09-06 21:01 01) 利用mysql 复制分流查询操作 利用mysql的主从复 ... -
如何减少对Mysql的访问以优化SQL语句
2015-09-06 21:00 0避免对同一数据做重复 ... -
使用mysql连接池提高性能
2015-09-06 20:59 0对于访问数据库来说,建立连接的代价比较昂贵,因此,我们有必要建 ... -
Mysql锁的优化
2015-09-06 20:59 0获取锁等待情况 可以 ... -
调整Mysql中insert、update、delete的顺序来以提高效率
2015-09-26 22:26 618MySQL还允许改变语句调度的优先级,它可以使来自多个客户端的 ... -
Mysql join语句的优化
2015-09-26 22:25 345Mysql4.1开始支持SQL的子查询。这个技术可以使用SEL ... -
Mysql order by语句的优化
2015-09-19 11:56 402在某些情况中,MySQL可以使用一个索引来满足ORDER BY ... -
Mysql group by语句的优化
2015-09-13 16:01 385默认情况下,MySQL排序所有GROUP BY col1, c ... -
Mysql insert语句的优化
2015-09-08 22:59 3461) 如果你同时从同一客户插入很多行,使用多个值表的INSER ... -
Mysql大量插入数据时SQL语句的优化
2015-09-11 22:00 4691) 对于Myisam类型的表,可以通过以下方式快速的导入大量 ... -
Mysql索引优化教程
2015-09-08 22:59 415索引的存储分类 myisam表的数据文件和索引文件是自动分开 ... -
Mysql下优化SQL的一般步骤
2015-09-07 11:50 346通过show status和应用特点了解各种SQL的执行频率 ... -
Mysql SQL Mode详解
2015-09-07 11:50 469Mysql SQL Mode简介 MySQL服务器能够工作在 ... -
Mysql使用SQL的安全问题,Mysql防止SQL注入
2015-09-07 11:50 402SQL注入简述 SQL Injection ...
相关推荐
MySQL是世界上最受欢迎的开源关系型数据库之一,尤其在处理海量数据时,其性能优化显得尤为重要。本资料"海量数据性能优化.rar"主要聚焦于如何在大数据环境下提升MySQL的运行效率和响应速度,确保系统的稳定性和可...
本文主要讨论了如何解决MySQL单表2000万数据查询慢的问题,通过将表分区和使用时间触发器来实现数据的优化。 分区设计 在解决方案中,我们使用的是按照8周将单表分为8个区,每周一都会将最早一周的分区Drop掉,然后...
出发点 比如,现在有这么一个问题,常见的一个面试题: ... 追溯到数据表的设计,sql查询语句的调优,并且需要考虑到这种大表的数据插入时候的注意事项,数据分页及未来数据表管理时可能遇见的问
本文将深入探讨如何管理和优化存储着千万级别数据的表,以"t_order"为例,该表可能存在于您提供的压缩包文件"t_order.sql"中。 一、数据库设计与规范 在设计千万级别的数据表时,遵循数据库设计范式至关重要。"t_...
MySQL数据查询优化,应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描
在本篇文章中,我们将深入探讨 MySQL 数据集的相关知识点,包括数据集的生成、操作以及优化策略。 首先,我们要理解数据集是通过执行 SQL 查询语句从数据库表中提取的数据。例如,`SELECT` 语句就是用来获取数据集...
本教程将详细介绍如何使用C#与Mysql进行交互,包括创建数据库、数据表以及执行基本的CRUD(Create、Read、Update、Delete)操作。 首先,我们需要在C#项目中引入Mysql的数据提供者——`MySql.Data.dll`。这个库允许...
【标题】"最新全国省市区县(含港澳台)的mysql数据表"涉及的主要知识点是MySQL数据库管理和地理信息系统的结合,特别是如何在MySQL中构建一个包含全国所有省份、城市、区县,包括港澳台地区的数据表。这通常用于...
_mysql 千万级数据优化_ MySQL 是一种流行的开源关系数据库管理系统,在大规模数据处理中,MySQL 的性能优化变得非常重要。下面我们将从查询优化和 SQL 编写注意事项两个方面来讨论 MySQL 千万级数据优化。 查询...
数据库基础知识是MySQL性能优化的基础,包括数据模型、数据存储、数据完整性和数据安全性等方面。数据模型是数据库系统的核心,它描述了数据的组织方式和数据之间的关系。常见的数据模型有层次模型、关系模型和面向...
在数据库管理领域,MySQL是广泛使用的开源关系型数据库系统,尤其在处理大数据量时,其性能优化和高效表设计显得尤为重要。本篇文章将深入探讨针对MySQL大表的性能优化策略以及如何遵循高性能的表设计规范。 一、...
本测试数据集提供了一张包含200万条数据的单表,这对于数据库性能测试、查询优化、大数据处理以及系统负载测试等方面具有极高的价值。下面将围绕这个主题,详细介绍MySQL数据库的相关知识点。 1. 数据库设计: 在...
MySQL性能优化是一个涵盖广泛的主题,涉及多个层面,包括SQL语句优化、索引优化、数据库表结构优化、系统级配置优化以及服务器硬件优化。以下是对这些方面进行详细说明: 1. **SQL语句优化** - **慢查询日志**:...
MySQL数据库中Join操作的使用及优化是一项重要的技能,它涉及到数据库中表与表之间的关联查询。在执行Join操作时,数据库管理系统需要按照某种算法将多个表中的数据记录联合起来,并返回查询结果。Join操作的主要...
1. 定期分析和优化表(ANALYZE TABLE和OPTIMIZE TABLE)以更新统计信息和物理结构。 2. 清理不再使用的旧数据,避免数据膨胀。 3. 监控数据库性能,使用工具如MySQL Performance Schema或Percona Toolkit进行诊断。 ...
标题 "省市区街道4级MySQL数据.rar" 指向的是一个包含中国行政区域划分的数据库资源,特别针对省、市、区、街道这四级行政单位。这些数据通常用于地理信息系统(GIS)、电子商务、物流配送、本地化服务等各种需要...
"Mysql千万级别数据优化方案" 一、 目的与意义 在 MySql 单表中数据达到千万级别时,数据的分页查询结果时间过长,对此进行优达到最优效果,也就是时间最短。为了解决这个问题,我们需要了解 MySQL 数据库的分页...
本文实例讲述了mysql优化小技巧之去除重复项实现方法。分享给大家供大家参考,具体如下: 说到这个去重,脑仁不禁得一疼,尤其是出具量比较大的时候。毕竟咱不是专业的DB,所以嘞,只能自己弄一下适合自己去重方法了...
在数据库管理中,了解MySQL数据量的大小是至关重要的,这有助于优化性能、规划存储空间以及进行容量规划。本文将详细讲解如何统计MySQL数据库的数据量大小,并涉及CONCAT函数的解读,以及对information_schema和...
首先,`test.sql`文件是一个MySQL数据库的SQL脚本文件,通常包含创建表结构、插入数据等操作。在这个场景中,它包含了300万条记录,这对于测试数据库性能、查询优化、并发处理能力等提供了充足的数据基础。 1. **...