mysql 调优学习笔记

今天开始学习mysql调优啦 大笑(偶那东一榔头西一棒子的学习历程的又一棒子)

好啦,言归正传:

 首先,mysql调优有三个主要的方式,由低到高分别是:

1、硬件调优

2、修改mysql进程

3、优化mysql查询

一、硬件调优

       先看看硬件调优吧。这个有两方面你可以考虑,首先对现有硬件条件进行修复,能调整的调整,能替换的替换,例如你可以把中央处理器(CPU)或磁盘速度加倍,也可以让内存增大 4 到 8 倍。或者你可以替换掉有问题的硬件。其次,如果你的预算没有限制,那么你干脆可以无限制的增加你的服务器大笑。不过这种解决方案也就仅限于此了。

二、修改mysql进程

        也就是对mysqld进行调优,对这个进程进行调优意味着适当地分配内存,并让 mysqld 了解将会承受何种类型的负载。加快磁盘运行速度不如减少所需的磁盘访问次数。类似地,确保 MySQL 进程正确操作就意味着它花费在服务查询上的时间要多于花费在处理后台任务(如处理临时磁盘表或打开和关闭文件)上的时间。


三、查询优化

       这个是最好的方法啦,这意味着对表应用了适当的索引,查询是按照可以充分利用 MySQL 功能的方式来编写的。可以配置 mysqld 来报告可能需要进行调优的查询。

       如何调优呢,具体方法如下:

       a、记录慢速查询

             啥是慢速查询呢:执行时间超过给定时间范围的查询就称为慢速查询。您可以配置mysqld 将这些慢速查询记录到适当命名的慢速查询日志中。然后你日后可以通过观察这些日志,来决定哪些部分需要调整。你需要在 my.cnf 中所做如下配置。


            my.cnf中添加如下配置

[mysqld]
; enable the slow query log, default 10 seconds
log-slow-queries
; log queries taking longer than 5 seconds
long_query_time = 5
; log queries that don't use indexes even if they take less than long_query_time
; MySQL 4.1 and newer only
log-queries-not-using-indexes
          下面解释下上面的代码:

           这三个设置一起使用,可以记录执行时间超过 5 秒和没有使用索引的查询。请注意有关log-queries-not-using-indexes 的警告。慢速查询日志都保存在 MySQL 数据目录中,名为 hostname-slow.log。如果希望使用一个不同的名字或路径,可以在 my.cnf 中使用log-slow-queries = /new/path/to/file 实现此目的。

         mysqldumpslow ,你可以通过此命令来查看慢查询日志 ,例如

[root@ mysql-5.0.37]# mysqldumpslow /data/mysql-db/slow_queries.log -t 10
Reading mysql slow query log from /data/mysql-db/slow_queries.log
Count: 1  Time=763486.00s (763486s)  Lock=0.00s (0s)  Rows=0.0 (0), *********
SET insert_id=N;
INSERT INTO `nike`.`nike_countlog_index` (`userId`, `action`, `model`, `info`, `cTime`, `ip`, `isRen`) 
VALUES ('S', 'S', 'S', 'S', 'S', 'S', 'S')
       上面的例子的返回结果被偶删掉啦(为了偶这里的安全哈 大笑),从这些返回结果中我们可以看到,通过mysqldumpslow我们可以获得如下信息:

       count:他在此日志文件中重复出现的次数(对同一个查询的不同调用被计为一次)

      b、对查询进行缓存

             又是缓存哈,大多

  • 2
    点赞
  • 45
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
MySQL高级调优是针对MySQL数据库性能优化的一系列操作和技术手段,旨在提升数据库的响应速度、并发处理能力和稳定性。 首先,在硬件层面,可以通过增加服务器的内存、磁盘带宽和处理器等硬件资源来提升MySQL的性能。同时,可以使用RAID技术提供更高的磁盘I/O性能,并进行适当的磁盘配置和分区。 其次,在数据库设计层面,要合理设计数据库表结构,避免数据冗余和分散索引等问题。使用合适的数据类型和长度,以减小数据存储的空间,提高查询效率。合理划分并使用表空间,提升磁盘IO性能。 在MySQL配置方面,可以根据具体需求和硬件环境,调整参数设置来提高性能,如innodb_buffer_pool_size、innodb_log_file_size、max_connections等参数。同时,通过开启慢查询日志、查询缓存和二进制日志等功能来分析和优化SQL查询性能。 此外,索引的正确使用对MySQL的性能至关重要。通过合理地创建索引和删除不必要的索引,可以极大地提升查询效率。需要注意的是,索引不宜过多,否则会增加写入操作的负担。 在查询语句的编写中,应尽量避免使用SELECT *,而是明确指定需要的字段。同时,合理利用limit、join查询和子查询等功能,减小查询数据集大小和复杂度。 最后,通过监控与调优工具,如MySQL自带的slow query log和performance_schema,可以实时监控和分析数据库的性能瓶颈,及时调整配置和优化SQL查询语句。 综上所述,MySQL高级调优是一个综合性的工作,需要从多个方面进行优化。在硬件、设计、配置、索引、SQL编写和监控等各方面进行细致而合理的调整,才能有效提升MySQL数据库的性能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值