资源描述:
《mysql数据库优化》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、MySQL数据库优化 1:磁盘寻道能力,以高速硬盘(7200转/秒),理论上每秒寻道7200次.这是没有办法改变的,优化的方法是----用多个硬盘,或者把数据分散存储. 2:硬盘的读写速度,这个速度非常的快,这个更容易解决--可以从多个硬盘上并行读写. 3:cpu.cpu处理内存中的数据,当有相对内存较小的表时,这是最常见的限制因素. 4:内存的限制.当cpu需要超出适合cpu缓存的数据时,缓存的带宽就成了内存的一个瓶颈---不过现在内存大的惊人,一般不会出现这个问题. 第二步:(本人使用的是学校网站的linux平台(LinuxADVX.Mandrakeso
2、ft.2.4.3-19mdk)) 1:调节服务器参数 用shell>mysqld-help这个命令声厂一张所有mysql选项和可配置变量的表.输出以下信息: possiblevariablesforoption--set-variable(-o)are: back_logcurrentvalue:5//要求mysql能有的连接数量.back_log指出在mysql暂停接受连接的时间内有多少个连接请求可以被存在堆栈中 connect_timeoutcurrentvalue:5//mysql服务器在用badhandshake(不好翻译)应答前等待一个连
3、接的时间 delayed_insert_timeoutcurrentvalue:200//一个insertdelayed在终止前等待insert的时间 delayed_insert_limitcurrentvalue:50//insertdelayed处理器将检查是否有任何select语句未执行,如果有,继续前执行这些语句 delayed_queue_sizecurrentvalue:1000//为insertdelayed分配多大的队 flush_timecurrentvalue:0//如果被设置为非0,那么每个flush_time时间,所有表都被关闭
4、 interactive_timeoutcurrentvalue:28800//服务器在关上它之前在洋交互连接上等待的时间 join_buffer_sizecurrentvalue:131072//用与全部连接的缓冲区大小 key_buffer_sizecurrentvalue:1048540//用语索引块的缓冲区的大小,增加它可以更好的处理索引 loescurrentvalue:0// long_query_timecurrentvalue:10//如果一个查询所用时间大于此时间,sloax_alloax_connectionscurrentvalue:30
5、0//允许同时连接的数量 max_connect_errorscurrentvalue:10//如果有多于该数量的中断连接,将阻止进一步的连接,可以用flushhosts来解决 max_delayed_threadscurrentvalue:15//可以启动的处理insertdelayed的数量 max_heap_table_sizecurrentvalue:16777216// max_join_sizecurrentvalue:4294967295//允许读取的连接的数量 max_sort_lengthcurrentvalue:1024//在排序bl
6、ob或者text时使用的字节数量 max_tmp_tablescurrentvalue:32//一个连接同时打开的临时表的数量 max_ysqld,使得在一定数量的p_table_sizecurrentvalue:1048576//临时表的大小 thread_stackcurrentvalue:131072//每个线程的大小 eoutcurrentvalue:28800//服务器在关闭它3之前的一个连接上等待的时间 根据自己的需要配置以上信息会对你帮助. 第三: 1:如果你在一个数据库中创建大量的表,那么执行打开,关闭,创建(表)的操作就会很慢.
7、2:mysql使用内存 a:关键字缓存区(key_buffer_size)由所有线程共享 b:每个连接使用一些特定的线程空间.一个栈(默认为64k,变量thread_stack),一个连接缓1234下一页>>>>这篇文章来自..,。冲区(变量_buffer_length)和一个结果缓冲区(_buffer_length).特定情况下,连接缓冲区和结果缓冲区被动态扩大到max_alloysqladminflush-tables命令关闭所有不在使用的