【运维干货】MySQL数据库性能简单优化

发布于 2017-10-04

在PHP+MYSQL架构网站运行过程中,往往会遇到各种性能问题影响,如MySQL、PHP、CPU、磁盘IO、缓存等,其中MySQL瓶颈就是最常见也最难解决的一种影响网站性能的因素;通常,我们会使用redis、memcached等缓存软件来缓存内容,这确实是最优的解决方案之一,但这需要网站程序的支持,然而多数常用网站程序并不支持或者不能完美支持这些缓存软件,今天我们就来谈谈如何通过MySQL自身的配置调整来优化MySQL性能,以缓解MySQL瓶颈问题。   通常MySQL调优我们分以下几部分: 1、MySQL配置参数调优 (需要根据网站运行情况调整) 2、数据表索引调优 (效果明显,但通常优秀的开源程序都不需要调整) 3、SQL语句调优 (这是程序员或DBA干的事)   1、活动/峰值连接数 当前活动的连接为1个,自MySQL服务启动以来,最高连接数为54;当最高连接数接近或等于max_connections时,应适当增加max_connections,需要注意的是,不要一下子增加过多,建议每次增加50,观察一段时间,不够再继续增加。 2、线程缓存命中率 线程缓存命中率为99.78%,若这个值小于90%,建议适当增加thread_cache_size,建议每次增加8。 3、索引命中率 索引命中率为99.50%,若这个值小于95%,建议适当增加key_buffer_size,建议每次增加64,需要说明的是,若您的数据库使用的是Innodb引擎,可忽略这个选项 4、Innodb索引命中率  Innodb索引命中率为100%,若这个值小于95%,建议适当增加innodb_buffer_pool_size,建议每次增加64,需要说明的是,若您的数据库没有使用Innodb引擎,可忽略这个选项 5、查询缓存命中率 MySQL查询缓存是个比较受争议的功能,个人建议当你有在使用redis、memcached等缓存软件时,在query_cache_size设为0可以将其关闭,当你没有使用缓存软件,有多余的内存使用,且数据库瓶颈明显存在时,可以尝试开启查询缓存,这是个非常依赖数据表结构及SQL语句优化的功能,若数据表结构和SQL语句都针对查询缓存进行过优化,它的效果还是很不错的。 6、创建临时表到磁盘 中创建临时表到磁盘的比例是0.42%,这说明大部分临时表创建到内存了,不会过多增加磁盘IO的开销,建议,当比例大于2%时适当增加tmp_cache_size,建议每次增加32,当比例大于60%时,放弃吧,有些开源程序并没有专门优化过SQL语句,所以在运行过程中会开启大量临时表,加多少缓存都是不够用的。 7、已打开的表 当已打开的表接近或等于table_open_cache时,可以适当增加table_open_cache,但若设置过大可能导致您的程序频繁中断MySQL连接,建议在1024以内,最大不要超过2048。 8、没有使用索引的量、没有使用索引的JOIN量 若不为0,就检查下数据表索引吧,其实只要没有疯涨,比如一天增涨几千,一般可以忽略,必竟优化索引还是程序员或DBA去干比较合适。 9、排序后的合并次数 如果这个值在缓慢增张,建议适当增加sort_buffer_size,建议每次增加512,但最大不要超过8192,如果这个值一直在疯涨,增加sort_buffer_size也没用,就放弃这个选项吧,这个锅还是给程序开发者背。 10、锁表次数 如果服务器CPU开销不大的情况下,疯狂锁表,建议你将所有数据表转换成innodb,记得转换前备份哦。 11、优化方案 这个是我们根据内存大小给的一个推荐优化方案,仅是建议仅用于基础参考值,还是要根据实据情况来调整每一个配置项。


sqlite弃坑 回到mysql mysql安装+phpmyadmin

发布于 2017-03-03

放弃sqlite phpMyAdmin是一种MySQL的管理工具,它直接从web上去管理MySQL。 安装到网站目录下,目录名最好改成其他的 将此档解压缩     修改设定档   1.找到 /libraries/config.default.php文件(config.default.php复制到phpmyadmin目录下,然后更名为config.inc.php),该文件有如下项目(2-8)须自行配置,windows用写字板(不要用记事本,这是UTF8编码)进行编辑,在linux下直接用vim编辑.   2.查找 $cfg['PmaAbsoluteUri'] 修改为你将上传到空间的phpMyAdmin的网址   如:$cfg['PmaAbsoluteUri'] = 'http://192.168.1.11/onlyyouknow/';   3.查找 $cfg['Servers'][$i]['host'] = 'localhost';(通常用默认,也有例外,可以不用修改)   4.查找 $cfg['Servers'][$i]['auth_type'] = 'config';   在自己的机子里调试用config;如果在网络上的空间用cookie,这里我们既然在前面已经添加了网址,就修改成cookie ,这里建议使用cookie.   5.查找 $cfg['Servers'][$i]['user'] = 'root'; // MySQL user(mysql用户名,自己机里用root;)   6.查找 $cfg['Servers'][$i]['password'] = ''; // MySQL password (mysql用户的密码,自己的服务器一般都是mysql用户root的密码)   7.查找 $cfg['Servers'][$i]['only_db'] = ''; // If set to a db-name, only(你只有一个数据就设置一下;如果你在本机或想架设服务器,那么建议留空)   8.查找 $cfg['DefaultLang'] = 'zh'; ...


您的 PHP 似乎没有安装运行 WordPress 所必需的 MySQL 扩展错误解决办法

发布于 2013-12-20

学校论坛服务器流量一大就崩溃,寻思着给web环境升下级 然后吧Apache换成了nginx/1.5.7, mysql升到了5.6.12 php升到了5.4.23 升级完成后兴冲冲的打开一看提示您的 PHP 似乎没有安装运行 WordPress 所必需的 MySQL 扩展 (论坛装了WordPress ) 立马百度,更具下面的方法解决的 第一步: 确认开启以下扩展 extension=php_mysql.dll extension=php_mysqli.dll 第二步: 找到 ; On windows: ; extension_dir = "ext" 去除前面的分号,并改为 extension_dir = "D:/php5/ext" D:/php5为你的php安装目录 注意:把D:php5改为D:/php5,即路径中所有的都改为/   ok,一切正常