优化mySQL
时间:2010-09-10 来源:uplooking_sh
www.uplooking.com 1 查看mysqld 变量的值 mysqladmin -uroot -p123456 variables 或连接到数据库时使用 mysql>show variables 2查看mysql的状态 mysqladmin extended-status 或连接到数据库时使用 mysql>show status 以上两步以确定是否要修改table_cache,key_buffer_size 3 查看线程任务 mysqladmin processlist 4 查看查询语句的状态 select distinct arts.a_id,arts.headlinel,nartsect.se_id,arts.mdate,arts.set 以上两步以确定连接太多的问题,还有运行缓慢的查询语句,一些复杂的连接语句不可避免地会严重地影响了性能的最优化 5 delayed_queue_size 的值如果被设置成默认值1000,这意味着1000个超时的语句将排队等待之后,客启程序将不再被释放,也只能等待,例如insert delayed在你系统几乎在同一时刻产生了大量的插入语句,并且发现即使使用语句insert delayed,客户程序仍旧需要等待,你就应该增加delayed_queue_size的值 6 当连接请求达到back_log的限定值,任何更多的请求将被排进队列而不是被拒绝,就应该增加back_log值,如果请求数量是稳定的,系统忙,就该考虑系统的问题了 7 sort_buffer变量能够加快myisamchk的运算速度,如果你通常做许多排序运算(如经常在大表中使用order by语句),改用sort_buffer是很有帮助的,配置文件my_huge.cnf(1 g内存的系统)默认sort_buffer对myisamchk使用256M内存,但如果有很多同时(注意指的是同时)发生的连接在执行从句order by,由于每个连接都被分配了一个变量sort_buffer,会出现内存问题 8 为了让表innodb运行稳定,最重要的是变量innodb_data_file_path,它用来指定表(数据和索引)可获得的空间, 它给文件配大小,应该让最后一个数据文件自动扩展(也只有最后一个数据能这样做)以容纳额外的数据,例: innodb_data_file_path=/disk1/ibdata1:500M;/disk2/ibdata2:50M:autoextend 当数据在disk1\ibdata1中达到500M的限定值时,此后的数据将被放入disk2\ibdata2中,一旦达到disk2\ibdata2中50M的限制ibdata2将自动以8M的程序块进行扩展,如果disk2的物理空间满,则需要增加disk3,为了让改变生效,需要重新启动服务器。 9 在mysql4。0。3版本之后,可以服务器动行的同时,改变变量值,但是,set语句在默认状态所做的变化只影响当前session,即当你下一次连接的时候,变量仍然使用配置文件指定的设置,如果指定global关键字,所有的新的连接将使用新的值,然而重启服务器时,仍然使用配置文件中指定的值,同时你需要有super权限 例:mysql> set session max_sort_length=2048; mysql> set max_sort_length=2048; (这两句的结果是相同的) mysql> set @@local.max_sort_lenth=2048;(@@语法用来与其它数据库管理系统(DBMS)进行兼容)
如果你决定回去使用旧的 |