WEB开发网
开发学院数据库MySQL myql缓存优化 实现命中率100% 阅读

myql缓存优化 实现命中率100%

 2010-11-24 00:25:40 来源:WEB开发网   
核心提示:myql优化,启动mysql缓存机制,myql缓存优化 实现命中率100%,实现命中率100%配置你的mysql配置文件:主要是配置[mysqld]后面的内容,1,当必须对数据进行连接时,这个问题就更加复杂了,优化远程连接速度,在[mysqld]下面添加skip-name-resolveskip-name-resolv

myql优化,启动mysql缓存机制,实现命中率100%

配置你的mysql配置文件:主要是配置[mysqld]后面的内容。

1,优化远程连接速度。

在[mysqld]下面添加skip-name-resolve

skip-name-resolve

选项就能禁用DNS解析,连接速度会快很多。不过,这样的话就不能在MySQL的授权表中使用主机名了而只能用ip格式。

2,设置连接数,mysql默认的连接数是100,太少了。

[mysqld]下面添加

set-variable = max_connections=500

3,开启缓存机制

skip-locking#取消文件系统的外部锁

key_buffer = 512M#索引缓存,根据内存大小而定,如果是独立的db服务器,可以设置高达80%的内存总量

 #连接排队列表总数

back_log = 200

max_allowed_packet = 2M

 #打开表缓存总数,可以避免频繁的打开数据表产生的开销

 table_cache = 512

#每个线程排序所需的缓冲

 sort_buffer_size = 4M

#MyISAM表发生变化时重新排序所需的缓冲

 myisam_sort_buffer_size = 64M

 #缓存可重用的线程数

 thread_cache = 128

 #查询结果缓存

 query_cache_size = 128M

 #设置超时时间,能避免长连接

 set-variable = wait_timeout=60

 #最大并发线程数,cpu数量*2

 thread_concurrency = 4

#记录慢查询,然后对慢查询一一优化

 log-slow-queries = slow.log

 long_query_time = 1

4,安装mytop监控mysql

apt-get install mytop

执行命令mytop就可以看到mysql的运行状态。

以下内容为转载的网上的文章,对mysql的配置和调试做了很详细的讲解:

关于 MySQL 调优

有3种方法可以加快 MySQL 服务器的运行速度,效率从低到高依次为:

替换有问题的硬件, 对 MySQL 进程的设置进行调优,对查询进行优化。

替换有问题的硬件通常是我们的第一考虑,主要原因是数据库会占用大量资源。不过这种解决方案也就仅限于此了。实际上,您通常可以让中央处理器(CPU)或磁盘速度加倍,也可以让内存增大4到8倍。

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

最好的方法是确保查询已经进行了优化。这意味着对表应用了适当的索引,查询是按照可以充分利用 MySQL 功能的方式来编写的。尽管本文并没有包含查询调优方面的内容(很多著作中已经针对这个主题进行了探讨),不过它会配置 mysqld 来报告可能需要进行调优的查询。

虽然已经为这些任务指派了次序,但是仍然要注意硬件和 mysqld 的设置以利于适当地调优查询。机器速度慢也就罢了,我曾经见过速度很快的机器在运行设计良好的查询时由于负载过重而失败,因为 mysqld 被大量繁忙的工作所占用而不能服务查询。

  记录慢速查询

在一个 SQL 服务器中,数据表都是保存在磁盘上的。索引为服务器提供了一种在表中查找特定数据行的方法,而不用搜索整个表。当必须要搜索整个表时,就称为表扫描。通常来说,您可能只希望获得表中数据的一个子集,因此全表扫描会浪费大量的磁盘 I/O,因此也就会浪费大量时间。当必须对数据进行连接时,这个问题就更加复杂了,因为必须要对连接两端的多行数据进行比较。

1 2 3 4 5 6  下一页

Tags:myql 缓存 优化

编辑录入:coldstar [复制链接] [打 印]
赞助商链接