一、查询性能优化 重构查询方式
1、一个复杂查询还是多个简单查询
MySQL内部每秒能够扫描内存中上百万行数据,相比之下,MySQL响应数据给客户端就慢得多了。在其他条件都相同的时候,使用尽可能少的查询当然是更好的。但是有时候,将一个大查询分解为多个小查询也是很有必要的。
2、切分查询
有时候对于一个大查询我们需要“分而治之”,对于删除旧数据,如果用一个大的语句一次性完成的话,则可能需要一次性锁住很多数据、占满整个事务日志、耗尽系统资源、阻塞很多小的但重要的查询。将一个大的DELETE语句切分成多个较小的查询可以尽可能小地影响MySQL性能,同时还可以减少MySQL复制的延迟。例如我们需要每个月运行一次下面的查询:
那么可以用类似下面的办法来完成同样的工作:
3、分解关联查询
二、数据库大小
1、查询语句 得到的结果是以字节为单位,除1024为K,除1048576为M
SELECT SUM(DATA_LENGTH)/1073741824,SUM(INDEX_LENGTH)/1073741824, (SUM(DATA_LENGTH)+SUM(INDEX_LENGTH))/1073741824 FROM information_schema.TABLES WHERE TABLE_SCHEMA='数据库名';
2、查看数据库中各个表占用的空间大小
SELECT TABLE_NAME,(DATA_LENGTH+INDEX_LENGTH)/1073741824, TABLE_ROWS FROM information_schema.TABLES WHERE TABLE_SCHEMA='数据库名' AND TABLE_NAME='表名';
--全表
SELECT TABLE_NAME,(DATA_LENGTH+INDEX_LENGTH)/1073741824, TABLE_ROWS FROM information_schema.TABLES WHERE TABLE_SCHEMA='数据库名';
3、关于删除数据后物理空间未释放
OPTIMIZE TABLE 当您的库中删除了大量的数据后,您可能会发现数据文件尺寸并没有减小。这是因为删除操作后在数据文件中留下碎片所致。OPTIMIZE TABLE 是指对表进行优化。如果已经删除了表的一大部分数据,或者如果已经对含有可变长度行的表(含有 VARCHAR 、 BLOB 或 TEXT 列的表)进行了很多更改,就应该使用 OPTIMIZE TABLE 命令来进行表优化。这个命令可以将表中的空间碎片进行合并,并且可以消除由于删除或者更新造成的空间浪费 。OPTIMIZE TABLE 命令只对 MyISAM 、 BDB 和 InnoDB 表起作用 。表优化的工作可以每周或者每月定期执行,对提高表的访问效率有一定的好处,但是需要注意的是,优化表期间会锁定表,所以一定要安排在空闲时段进行。
参考资料:
《高性能MySQL》
相关推荐
mysql优化三部分:索引的优化,sql慢查询的优化,表的优化测试慢查询语句测试联合索引语句总结全表扫描:会将整张表数据全部扫描一遍,这样的话效率非常低。Hash索引优点:通过字段的值计算的hash值,定位数据非常快...
MySQL优化是提升数据库性能的关键,尤其对于Zabbix这样的监控系统来说,其性能直接影响到监控数据的收集和告警的及时性。Zabbix的数据主要存储在`history`和`trends`两个表中,随着时间的推移,这两个表会变得非常...
以下是一份详细的MySQL优化笔记,涵盖了多个方面: 一、查询优化 1. 使用索引:为经常用于搜索的列创建索引可以显著加快查询速度。B树和哈希索引是最常见的类型,适用于不同的查询场景。 2. 避免全表扫描:尽量使用...
MySQL优化是数据库管理中至关重要的环节,它涉及到提升查询性能、降低资源消耗,从而提高整个系统的响应速度和服务质量。MySQL自带的慢查询日志(slow query log)是进行优化的重要工具之一,它记录了执行时间超过预设...
本文讨论了 MYSQL 优化方案的多个方面,涵盖 BIOS 设置优化、IO 子系统优化、Schema 设计优化、索引设计优化和无法使用索引的场景等方面的知识点,旨在帮助读者更好地了解 MYSQL 优化的方法和策略。
MySQL优化是指通过一系列技术和策略来提高数据库性能,确保系统能够高效地处理大量数据请求。以下是对MySQL优化的详细探讨: 一、SQL查询优化 1. 索引优化:创建合适的索引来加速查询。主键自动创建唯一索引,非...
以下将详细介绍MySQL优化的各个方面,并结合提供的文件名进行推测,尽管没有实际内容,但我们可以根据文件名来讨论可能涉及的主题。 1. **索引优化**:`mysql_rel.sql`可能包含SQL脚本,其中创建表结构和数据的关系...
MySQL 优化是一个重要的...综上所述,MySQL优化涉及多个层面,包括架构理解、SQL语句调整和索引优化。通过对这些方面进行深入研究和实践,我们可以显著提升MySQL数据库的性能和响应速度,从而为业务提供更好的支持。
大型门户网站核心技术-Mysql优化 大型门户网站核心技术-Mysql优化 大型门户网站核心技术-Mysql优化
mysql优化 # MySQL优化 MySQL是一种流行的开源关系型数据库管理系统。当在大型应用程序中使用MySQL时,需要进行优化以确保其性能最大化。以下是一些MySQL优化的建议: ## 1. 确保使用最新版MySQL MySQL的新版本...
"MySQL优化" MySQL是一种关系型数据库管理系统,作为一种流行的开源数据库,MySQL广泛应用于各种Web应用、企业应用和移动应用等领域。为了提高MySQL的性能和效率,需要进行优化,下面将从硬件、操作系统、软件、...
MySQL性能优化是一个涵盖广泛的主题,涉及多个层面,包括SQL语句优化、索引优化、数据库表结构优化、系统级配置优化以及服务器硬件优化。以下是对这些方面进行详细说明: 1. **SQL语句优化** - **慢查询日志**:...
mysql优化的脑图文件,已经涵盖了几乎所有情况,分别从“性能监控”,“schema与数据类型优化”,“索引优化”,“查询优化”,“分区表”,“参数设置”这几个方面展开的脑图,是您查找资料的好工具。当然,如果你...
非常有用的mysql优化原则(本人过滤过的,只留下实用性非常强的),非常常用,非常实用,绝对会经常用到
MYSQL优化表格,讲解MYSQL优化案例和读写分离架构。讲解索引和MYSQL数据文件的关系
本文将从EXPLAIN命令、SQL语句优化、索引的使用、排序和限制、union和union all的差异、ORDER BY RAND()的优化、in和exists的区分、分页方式的优化、分段查询等角度来讨论MySQL优化策略。 一、EXPLAIN命令的使用 ...
MySQL优化是指通过调整数据库的配置和优化查询语句等方式来提高MySQL数据库的性能和效率。 以下是一些常见的MySQL优化方法和技巧的描述: 优化数据库结构:设计良好的数据库结构可以提高查询效率。包括正确选择...