Windows服务器使用cmd命令连接mysql数据库查询监控状态的办法,以便进行性能优化my.ini配置文件
Windows服务器使用cmd命令连接mysql数据库查询监控状态的办法,以便进行性能优化my.ini配置文件任务管理器,详细信息选项,点击右键打开文件所在位置,资源管理器上单击空白处以便取消文件选中状态,之后按下键盘左下角的shift按键并且点击鼠标右键,使用在此处打开Powershell窗口
执行cmd命令切换到命令管理器
接下来在cmd窗口输入下方命令连接mysql,密码改成你自己的
mysql -u root -padmin
显示当前连接数
show status like 'Threads%';
+-------------------+-------+
| Variable_name | Value |
+-------------------+-------+
| Threads_cached | 54 |#线程缓存中线程的数量。缓存命中率可以由 Threads_created/Connections 计算得出。如果该值是红色的,则应该增加 thread_cache_size 的值。
| Threads_connected | 1 |#当前打开的连接数。
| Threads_created | 55 |#当前用于控制连接的线程数。如果 Threads_created 很大,您可能需要增加 thread_cache_size 的值。(如果线程状况良好,这么做通常并不会带来显著的性能提升。)
| Threads_running | 1 |#非睡眠状态的线程数量。
+-------------------+-------+
4 rows in set (0.01 sec)
打开的文件个数,建议设置数值为open_files_limit=102400
show status like 'Open_files';
打开的数据表个数,一般来说table_open_cache 是最终影响CPU性能的,可以适当调大,比如说2048,值越大时内存使用量越高
show status like 'Open_tables';
服务器执行语句时自动在磁盘上创建的临时表的数量。如果 Created_tmp_disk_tables 很大,你可以增加 tmp_table_size 的值,让服务器使用内存来存储临时表而非磁盘。
show status like 'Created_tmp_disk_tables';
若正确设置查询缓存将带来性能上的极大提升。您可以通过设置 query_cache_size 为 2 位数的 MB 值和设置 query_cache_type 为 'ON'。注意: 若您正在使用 memcached,请忽略此建议。
show variables like 'query_cache%';
+------------------------------+----------+
| Variable_name | Value |
+------------------------------+----------+
| query_cache_limit | 1048576|#限制单个查询缓存1MB最大值,建议保持默认
| query_cache_min_res_unit | 4096 |#大于4KB的查询才会被缓存,建议设置为256字节(1KB=1024字节)
| query_cache_size | 1048576 |#默认值1MB,查询缓存建议设置不超过128MB,设置更大的缓存会导致内存索引速度过慢
| query_cache_type | OFF |#因为使用memcached,所以查询缓存没有启用,一般无需开启
| query_cache_wlock_invalidate | OFF |#保持默认OFF代表允许锁表时直接调用cache缓存取结果
+------------------------------+----------+
5 rows in set, 1 warning (0.02 sec)
检查启用查询缓存后的命中率和剩余空闲可用内存情况
show status like 'Qcache%';
+-------------------------+-----------+
| Variable_name | Value |
+-------------------------+-----------+
| Qcache_free_blocks | 126369 |#剩余可用于缓存的blocks数量
| Qcache_free_memory | 698801528 |#剩余可用于缓存的内存大小为666MB
| Qcache_hits | 6378016 |#缓存命中次数
| Qcache_inserts | 9832350 |#回源次数
| Qcache_lowmem_prunes | 508002 |#因剩余内存不足而删除缓存的次数,原因一般是查询数量不足或者可用内存不足
| Qcache_not_cached | 102783 |#大于单个查询缓存最大值而不缓存的次数,query_cache_limit控制,默认值1MB
| Qcache_queries_in_cache | 252608 |#当前缓存中的查询数量,设置query_cache_size值为1024MB,query_cache_min_res_unit值为4KB时,可通过计算出最大值为262144
| Qcache_total_blocks | 632025 |#总共使用的blocks数量
+-------------------------+-----------+
8 rows in set (0.00 sec)
刷新缓存,标记为过期,需要root权限
flush query cache;
清空缓存,释放可用内存,需要root权限
reset query cache;
使用完毕后退出数据库
quit
注:一般不建议设置query_cache_type来启用查询缓存,因为有出现过几次假死进程,mysql只占用一个CPU核心死循环可能有BUG,导致出现站点无法访问的现象。
所以mysql官方解决办法是从MySQL 5.7.20开始,查询缓存已弃用,并在MySQL 8.0中删除。
之后进行my.ini配置文件修改,然后在任务管理器,服务中找到mysql点击右键,重新启动即可。
参考数据来自官方wiki文档:https://dev.mysql.com/doc/refman/5.6/en/server-system-variables.html
页:
[1]