我们专注攀枝花网站设计 攀枝花网站制作 攀枝花网站建设
成都网站建设公司服务热线:400-028-6601

网站建设知识

十年网站开发经验 + 多家企业客户 + 靠谱的建站团队

量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决

MySQL性能调优

1 MySQL工作原理

1.1 mysql体系结构:

成都创新互联是一家专注于网站制作、做网站与策划设计,三元网站建设哪家好?成都创新互联做网站,专注于网站建设十余年,网设计领域的专业建站公司;建站业务涵盖:三元等地区。三元做网站价格咨询:18982081108

连接池

sql接口

分析器

优化器

查询缓存

存储引擎

文件系统

管理工具

1.2 永久定义:

修改配置文件/etc/my.cnf

[mysql]

变量名=值

1.3 临时定义:

mysql>set (global) 变量=


2 性能调优

2.1 访问数据时,出结果特别慢。分析可能是由哪些原因导致的?

(1)硬件配置低:查看应用设备的使用率CPU  内存   存储(硬盘)

利用top,sar,uptime,free等;

(2)网络带宽: 使用网络测速软件 网速;

(3)提供数据库服务软件版本低:

2.2 并发及连接控制

mysql> show variables like “max_connections”;  #允许的最大并发连接数

mysql> show variables like "connect_timeout"; #建立连接时,三次握手的超时时间

mysql> show variables like "wait_timeout"; #建立连接后,等待断开连接的超时时间

查看当前已使用的连接数:

mysql>show global status like “max_used_connections”;

查看默认的最大连接数:

mysql> show variables like "max_connections";

理想比率:已使用的连接数/连接并发量<=85%

2.3 缓存参数控制

key_buffer_size  #用于myisam引擎的关键索引缓存大小

sort_buffer_size  #为每个要排序的线程分配此大小的缓存空间

read_buffer_size  #为顺序读取表记录保留的缓存大小

read_rnd_buffer_size #为排序结果读取表记录保留的缓存大小

允许重复使用的线程的数量

mysql> show  variables like  "thread_cache_size";

为所有线程缓存打开表的数量。

table_open_cache=2000

mysql> show  variables  like "table_open_cache";

查询缓存相关参数设置?

MySQL> show   variables  like "query_cache%";

查询缓存写锁有效 存储引擎(MYISAM)

query_cache_wlock_invalidate | OFF    

query_cache_type             0|1|2

0 关闭   不存储

1 开启   无条件存储

2 开启   指定存储才存储

 

查询缓存统计信息?

MySQL> show  global  status  like  "qcache%";

Qcache_hits            0      #查询缓存成功的次数(就是在缓存中找到查询的结果)

Qcache_inserts          0       #总的

Qcache_lowmem_prunes   0  #每次缓存达到一定数值,重新清空的次数,清空的次数越大代表缓存的使用不合理(总是被用完)

 

2.4 Mysql日志类型

(1)错误日志:记录数据库服务在启动和运行过程中产生的信息,默认启用

/etc/my.cnf中的log-error=/var/log/mysqld.log

(2)binlog日志:默认没有启用。

(3)查询日志:记录所有执行过的SQL命令,默认没有启用

vim /etc/my.cnf

[mysqld]

general-log  #默认存储位置 /var/lib/mysql  

默认名称:主机名.log

(4)慢查询日志:记录超过指定时间显示查询结果的SQL命令。默认超时时间10s。

slow-query-log #启用慢查询日志

slow-query-log-file=文件名 #指定日志名称

long-query-time=数字 #指定超时时间

默认存储位置 /var/lib/mysql  

默认名称:主机名-slow.log

[root@ser54 ~]# mysqldumpslow /var/lib/mysql/主机名-slow.log  >sql.txt

#查看慢查询日志,并把查询超时的查询语句保存下来

log-queries-not-using-indexes #记录未使用索引的查询


文章标题:MySQL性能调优
文章链接:http://mswzjz.cn/article/gggeei.html

其他资讯