`

MySQL优化

 
阅读更多

一、查询性能优化 重构查询方式

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》

http://blog.csdn.net/xifeijian/article/details/45460763

分享到:
评论

相关推荐

    mysql优化

    mysql优化三部分:索引的优化,sql慢查询的优化,表的优化测试慢查询语句测试联合索引语句总结全表扫描:会将整张表数据全部扫描一遍,这样的话效率非常低。Hash索引优点:通过字段的值计算的hash值,定位数据非常快...

    Mysql优化之Zabbix分区优化

    MySQL优化是提升数据库性能的关键,尤其对于Zabbix这样的监控系统来说,其性能直接影响到监控数据的收集和告警的及时性。Zabbix的数据主要存储在`history`和`trends`两个表中,随着时间的推移,这两个表会变得非常...

    mysql优化笔记+资料

    以下是一份详细的MySQL优化笔记,涵盖了多个方面: 一、查询优化 1. 使用索引:为经常用于搜索的列创建索引可以显著加快查询速度。B树和哈希索引是最常见的类型,适用于不同的查询场景。 2. 避免全表扫描:尽量使用...

    MySql优化.pdf

    MySQL优化是数据库管理中至关重要的环节,它涉及到提升查询性能、降低资源消耗,从而提高整个系统的响应速度和服务质量。MySQL自带的慢查询日志(slow query log)是进行优化的重要工具之一,它记录了执行时间超过预设...

    mysql优化方案

    本文讨论了 MYSQL 优化方案的多个方面,涵盖 BIOS 设置优化、IO 子系统优化、Schema 设计优化、索引设计优化和无法使用索引的场景等方面的知识点,旨在帮助读者更好地了解 MYSQL 优化的方法和策略。

    MYSQL优化资料

    MySQL优化是指通过一系列技术和策略来提高数据库性能,确保系统能够高效地处理大量数据请求。以下是对MySQL优化的详细探讨: 一、SQL查询优化 1. 索引优化:创建合适的索引来加速查询。主键自动创建唯一索引,非...

    php之mysql优化

    以下将详细介绍MySQL优化的各个方面,并结合提供的文件名进行推测,尽管没有实际内容,但我们可以根据文件名来讨论可能涉及的主题。 1. **索引优化**:`mysql_rel.sql`可能包含SQL脚本,其中创建表结构和数据的关系...

    MySQL优化分享.pptx

    MySQL 优化是一个重要的...综上所述,MySQL优化涉及多个层面,包括架构理解、SQL语句调整和索引优化。通过对这些方面进行深入研究和实践,我们可以显著提升MySQL数据库的性能和响应速度,从而为业务提供更好的支持。

    MySQL优化 PHP

    大型门户网站核心技术-Mysql优化 大型门户网站核心技术-Mysql优化 大型门户网站核心技术-Mysql优化

    mysql优化/pdf

    mysql优化 # MySQL优化 MySQL是一种流行的开源关系型数据库管理系统。当在大型应用程序中使用MySQL时,需要进行优化以确保其性能最大化。以下是一些MySQL优化的建议: ## 1. 确保使用最新版MySQL MySQL的新版本...

    MySQL优化.docx

    "MySQL优化" MySQL是一种关系型数据库管理系统,作为一种流行的开源数据库,MySQL广泛应用于各种Web应用、企业应用和移动应用等领域。为了提高MySQL的性能和效率,需要进行优化,下面将从硬件、操作系统、软件、...

    mysql性能优化.pptx

    MySQL性能优化是一个涵盖广泛的主题,涉及多个层面,包括SQL语句优化、索引优化、数据库表结构优化、系统级配置优化以及服务器硬件优化。以下是对这些方面进行详细说明: 1. **SQL语句优化** - **慢查询日志**:...

    MYSQL优化.xmind

    mysql优化的脑图文件,已经涵盖了几乎所有情况,分别从“性能监控”,“schema与数据类型优化”,“索引优化”,“查询优化”,“分区表”,“参数设置”这几个方面展开的脑图,是您查找资料的好工具。当然,如果你...

    mysql优化.txt

    非常有用的mysql优化原则(本人过滤过的,只留下实用性非常强的),非常常用,非常实用,绝对会经常用到

    MYSQL优化表格

    MYSQL优化表格,讲解MYSQL优化案例和读写分离架构。讲解索引和MYSQL数据文件的关系

    mysql 优化.docx

    本文将从EXPLAIN命令、SQL语句优化、索引的使用、排序和限制、union和union all的差异、ORDER BY RAND()的优化、in和exists的区分、分页方式的优化、分段查询等角度来讨论MySQL优化策略。 一、EXPLAIN命令的使用 ...

    MYSQL优化详情大全

    MySQL优化是指通过调整数据库的配置和优化查询语句等方式来提高MySQL数据库的性能和效率。 以下是一些常见的MySQL优化方法和技巧的描述: 优化数据库结构:设计良好的数据库结构可以提高查询效率。包括正确选择...

Global site tag (gtag.js) - Google Analytics