ITPub博客

首页 > 数据库 > MySQL > Mysql 性能调优 一 3

Mysql 性能调优 一 3

原创 MySQL 作者:Michael_DD 时间:2014-12-25 10:30:21 0 删除 编辑
 Mysql 性能调优 一   3


查看mysql启动文件查找顺序:

[root@test1 ~]# mysql --help
Default options are read from the following files in the given order:
/etc/my.cnf /etc/mysql/my.cnf /usr/etc/my.cnf ~/.my.cnf


connect pool--->sql处理过程 --->存储引擎 --->文件系统


查看系统参数:
show variables like '%key_buffer%';

查看状态参数:
show status like '%%';

修改全局系统参数:
set global 参数名=值;

修改session参数:(默认)
set  参数名=值;

mysql> show variables like '%key_buffer%';
+-----------------+---------+
| Variable_name   | Value   |
+-----------------+---------+
| key_buffer_size | 8388608 |
+-----------------+---------+
1 row in set (0.00 sec)

mysql> show status like '%key_buffer%';
Empty set (0.00 sec)

mysql>

注意:
系统参数与状态参数区别


key_buffer_size     query_cache_size
innodb_buffer_pool_size
table_cache

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++、
参数详解:

系统参数:
max_connections      配置mysql最大连接数

状态参数:
max_used_connections  从mysql开机开始,历史最大连接数


mysql> show variables like '%max_connection%';
+-----------------+-------+
| Variable_name   | Value |
+-----------------+-------+
| max_connections | 5000  |
+-----------------+-------+
1 row in set (0.00 sec)

mysql> show variables like '%max_used_connections%';
Empty set (0.00 sec)

mysql> show status like '%max_used_connections%';
+----------------------+-------+
| Variable_name        | Value |
+----------------------+-------+
| Max_used_connections | 1     |
+----------------------+-------+
1 row in set (0.00 sec)

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
系统参数:
thread_cache_size  线程

状态参数:
Threads_created       线程创建

已创建线程处于一个相对稳定值,则thread_cache_size配置合适


mysql> show status like '%Threads_created%';
+-----------------+-------+
| Variable_name   | Value |
+-----------------+-------+
| Threads_created | 1     |
+-----------------+-------+
1 row in set (0.00 sec)

mysql> show variables like '%thread_cache_size%';
+-------------------+-------+
| Variable_name     | Value |
+-------------------+-------+
| thread_cache_size | 58    |
+-------------------+-------+
1 row in set (0.00 sec)

mysql>

mysqlslap -uroot -p123456 --query "select count(*) from mysql.user" -i 20 -c 300

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
系统参数:
table_open_cache

状态参数:
open_tables     当前打开的table数
opened_tables    历史打开的table数

flush tables

cashe与buffer的区别:


+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
系统参数:
open_files_limit

状态参数:
open_files

opened_files

os系统方面调整: file-max
文件句柄

一般情况下,mysql数据库,产生的数据文件数都会多于oracle,所以对于打开文件数参数管理也相当重要

innodb_file_per_table 表空间
mysql的innodb的表空间,与oracle的表空间存在很大的区别:

要说表空间,Mysql的表空间管理远远说不上完善。换句话说,事实上Mysql根本没有真正意义上的表空间管理。
Mysql的Innodb包含两种表空间文件模式,默认的共享表空间和每个表分离的独立表空间。
只要在my.cnf里面增加innodb_file_per_table=1就可以从共享表空间切换到独立表空间。
当然对于已经存在的表,则需要执行alter table MY_TABLE engine=innodb命令迁移数据。


共享表空间方式
由于是默认的方式,就暂且理解为Mysql官方推荐的方式。相对而言所有的数据都在一个(或几个)文件中,比较利于管理,
而且在操作的时候只需要open这一个(或几个)文件即可,相对来说代价很低。
但问题是在数据达到以G为单位来计算的时候优劣逆转。一个大小惊人的文件很不利于管理,而且对于一个如此巨大的文件来说,
读写它需要耗费的资源一样巨大。更加令人费解的是,MySQL竟然将索引和数据保存于同一个文件中,索引和数据之间尚存在资源争用,不利于性能的提升。
你当然可以通过innodb_data_file_path的配置规划多个表空间文件,但MySQL的逻辑是“用满后增加”,仅仅是一个文件的拆分而已,不能从根本上分离数据和索引。

之前曾经遭遇到700G以上的表空间文件,而且更加让人郁闷的是对于如此大的文件还在以每天数G的数量增加。
由于无法停机,即便是拷贝一下也要花费差不多一夜,只能眼睁睁看着它继续增大而毫无保守可行的办法。



独立表空间方式

相对而言对立表空间每个表都有独立的多个数据文件,而且做到了索引和数据的分离。
多个小文件之间很方便的完成跨数据库甚至跨硬件的数据拷贝和迁移。相对来说灵活性很好。
这样做同样带来另一个方面的问题。当数据库中的表数量达到一定级别时,每次操作所涉及的文件过多,如果按照默认Centos的ulimit -n = 1024的话,
仅仅只能保证同时打开256个表以内,这在习惯上“拆库拆表”的MySQL数据结构上很难达到要求。
尚且这种数据文件的利用率不算很高,当大量“不高”的文件集中起来,浪费的空间也很惊人,
更何况最后可能出现的状况不是“一堆K级别的小文件”而是“一堆G级别的大文件”,
有点适得其反的意思。你自然可以联想到分区表,又是一个“仅仅做文件拆分而已”,
多个分区文件缺一不可。



之前同样遇到过这个问题,MySQL连接大的状况下大量的timeout,但主机负载还算可以,
查了一圈才知道是open files限制的问题,限制一修改,负载变得惊人,但连接数却又提升的不多。


总之,两种方法各有所长,部分互补,但都不是解决问题的终极方案

innodb_data_file_path=ibdata1:12M.........
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++


                                                                   ;

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/29500582/viewspace-1379434/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2014-02-22

  • 博文量
    326
  • 访问量
    2671974