站长百科 | 数字化技能提升教程 数字化时代生存宝典
首页
数字化百科
电子书
▼
建站程序
开发
服务器
办公软件
开发教程
▼
服务器教程
软件使用教程
运营教程
热门电子书
▼
CSS教程
WordPress教程
导航
程序频道
推广频道
网赚频道
人物频道
网站程序
网页制作
云计算
服务器
CMS
论坛
网店
虚拟主机
cPanel
网址导航
WIKI使用导航
WIKI首页
热点词条
最新资讯
网站程序
站长人物
页面分类
使用帮助
编辑测试
创建条目
网站地图
站长百科导航
站长百科
主机侦探
IDCtalk云说
跨境电商导航
WordPress啦
站长专题
网站推广
网站程序
网站赚钱
虚拟主机
cPanel
网址导航专题
云计算
微博营销
虚拟主机管理系统
开放平台
WIKI程序与应用
美国十大主机
编辑“
CmsEasy/mysql优化
”
人物百科
|
营销百科
|
网赚百科
|
站长工具
|
网站程序
|
域名主机
|
互联网公司
|
分类索引
跳转至:
导航
、
搜索
警告:
您没有登录。如果您做出任意编辑,您的IP地址将会公开可见。如果您
登录
或
创建
一个账户,您的编辑将归属于您的用户名,且将享受其他好处。
反垃圾检查。
不要
加入这个!
{{CmsEasy top}} 在整体的系统运行过程中,[[数据库]][[服务器]] [[MySQL]] 的压力是最大的,不仅占用很多的内存和 [[cpu]] 资源,而且占用着大部分的[[磁盘]] [[IO]] 资源,连 [[PHP]] 的官方都在声称,说 PHP [[脚本]] 80% 的时间都在等待 MySQL 查询返回的结果。由此可见,提高系统的负载能力,降低 MySQL 的资源消耗迫在眉睫。 ==页面缓存功能== 页面[[缓存]]功能降低MySQL的资源消耗的(系统本身就已经考虑,采用生成[[HTML]]页面,大大降低了[[数据库]]的压力)。 ==mysql服务器的优化== *修改全站搜索 修改my.ini(my.cnf) ,在 [mysqld] 后面加入一行“ft_min_word_len=1”,然后重启Mysql,再登录[[网站]]后台(模块管理->全站搜索)重建全文索引。 *记录慢查询[[sql]]语句,修改my.ini(my.cnf),添加如下代码: <pre> #log-slow-queries long_query_time = 1 #是指执行超过多久的 sql 会被 log 下来 log-slow-queries = E:/wamp/logs/slow.log #设置把日志写在那里,可以为空,系统会给一个缺省的文件 #log-slow-queries = /var/youpath/slow.log linux下 host_name-slow.log log-queries-not-using-indexes </pre> *mysql缓存的设置 <pre> mysql>show variables like '%query_cache%'; mysql本身是有对sql语句缓存的机制的, 合理设置我们的mysql缓存可以降低数据库的io资源。 #query_cache_type= 查询缓存的方式(默认是 ON) query_cache_size 如果你希望禁用查询缓存,设置 query_cache_size=0。 禁用了查询缓存,将没有明显的开销 query_cache_limit 不[[缓存]]大于这个值的结果。(缺省为 1M) </pre> *查询缓存的统计信息 <pre>mysql> SHOW STATUS LIKE ‘qcache%’</pre> #Qcache_free_blocks 缓存中相邻内存块的个数。数目大说明可能有碎片。FLUSH QUERY CACHE 会对缓存中的碎片进行整理,从而得到一个空闲块。 #Qcache_free_memory 缓存中的空闲内存。 #Qcache_hits 每次查询在缓存中命中时就增大。 #Qcache_inserts 每次插入一个查询时就增大。命中次数除以插入次数就是不中比率;用 1 减去这个值就是命中率。在上面这个例子中,大约有 87% 的查询都在缓存中命中。 #Qcache_lowmem_prunes 缓存出现内存不足并且必须要进行清理以便为更多查询提供空间的次数。这个数字最好长时间来看;如果这个数字在不断增长,就表示可能碎片非常严重,或者内存很少。(上面的 free_blocks 和 free_memory 可以告诉您属于哪种情况)。 #Qcache_not_cached 不适合进行缓存的查询的数量,通常是由于这些查询不是 SELECT 语句。 #Qcache_queries_in_cache 当前缓存的查询(和响应)的数量。 #Qcache_total_blocks 缓存中块的数量。通常,间隔几秒显示这些变量就可以看出区别,这可以帮助确定缓存是否正在有效地使用。运行 FLUSH STATUS 可以重置一些计数器,如果服务器已经运行了一段时间,这会非常有帮助。 *my.ini(my.conf)配置 '''key_buffer_size = 256M''' <pre># key_buffer_size</pre> 指定用于索引的缓冲区大小,增加它可得到更好的索引处理性能。 对于内存在4GB左右的服务器该参数可设置为256M或384M。注意:该参数值设置的过大反而会是服务器整体效率降低! '''max_allowed_packet = 4M''' <pre> thread_stack = 256K table_cache = 128K sort_buffer_size = 6M </pre> 查询排序时所能使用的缓冲区大小。注意:该参数对应的分配内存是每连接独占!如果有100个连接,那么实际分配的总共排序缓冲区大小为100 × 6 = 600MB。所以,对于内存在4GB左右的服务器推荐设置为6-8M。 '''read_buffer_size = 4M''' 读查询操作所能使用的缓冲区大小。和sort_buffer_size一样,该参数对应的分配内存也是每个连接独享! '''join_buffer_size = 8M''' 联合查询操作所能使用的缓冲区大小,和sort_buffer_size一样,该参数对应的分配内存也是每个连接独享! '''myisam_sort_buffer_size = 64M''' <pre> table_cache = 512 thread_cache_size = 64 query_cache_size = 64M </pre> 指定MySQL查询缓冲区的大小。可以通过在MySQL控制台执行以下命令观察: <pre> # > SHOW VARIABLES LIKE '%query_cache%'; # > SHOW STATUS LIKE 'Qcache%'; </pre> #如果Qcache_lowmem_prunes的值非常大,则表明经常出现缓冲不够的情况; #如果Qcache_hits的值非常大,则表明查询缓冲使用非常频繁,如果该值较小反而会影响效率,那么可以考虑不用查询缓冲; Qcache_free_blocks,如 果该值非常大,则表明缓冲区中碎片很多 '''tmp_table_size = 256M''' <pre>max_connections = 768</pre> 指定MySQL允许的最大连接进程数。如果在访问论坛时经常出现Too Many Connections的错误提示,则需要增大该参数值。 '''max_connect_errors = 10000000''' <pre>wait_timeout = 10</pre> 指定一个请求的最大连接时间,对于4GB左右内存的服务器可以设置为5-10。 '''thread_concurrency = 8''' 该参数取值为服务器逻辑CPU数量×2,如果服务器有2颗物理CPU,而每颗物理CPU又支持H.T超线程,所以实际取值为4 × 2 = 8 '''skip-networking''' 开启该选项可以彻底关闭MySQL的TCP/IP连接方式,如果WEB服务器是以远程连接的方式访问MySQL数据库服务器则不要开启该选项!否则将无法正常连接! ==参考来源== *http://www.cmseasy.cn/help_1.html {{CmsEasy}} [[category:CmsEasy|C]]
摘要:
请注意,您对站长百科的所有贡献都可能被其他贡献者编辑,修改或删除。如果您不希望您的文字被任意修改和再散布,请不要提交。
您同时也要向我们保证您所提交的内容是您自己所作,或得自一个不受版权保护或相似自由的来源(参阅
Wordpress-mediawiki:版权
的细节)。
未经许可,请勿提交受版权保护的作品!
取消
编辑帮助
(在新窗口中打开)
本页使用的模板:
模板:CmsEasy
(
编辑
)
模板:CmsEasy top
(
编辑
)