我有我的MySQL服务器的一些问题
# Time: 2017-10-30T09:25:41.253828Z # User@Host: dbXXXXXXXXXXXX[dbXXXXXXXXXXXX] @ localhost [] Id: 469 # Query_time: 26.990475 Lock_time: 0.000039 Rows_sent: 0 Rows_examined: 1 use dbXXXXXXXXXXXX; SET timestamp=1509355541; UPDATE online SET last_ping=1509355514 WHERE `device`='wggggn4gggk2gggggXYgEokgggggpOggf';
该表超级简单,包含大约1000行https://cdn.pbrd.co/images/GRjN6fE.png
我不知道为什么有时这么长时间。 设备在线时, last_ping每5秒更新一次。
或从WordPress的这一个:
# Time: 2017-10-30T07:55:24.755752Z # User@Host: sobotiste[sobotiste] @ localhost [] Id: 22317 # Query_time: 9.586909 Lock_time: 0.000113 Rows_sent: 0 Rows_examined: 1 use sobotiste; SET timestamp=1509350124; UPDATE `wp_options` SET `option_value` = '1509351915' WHERE `option_name` = '_transient_timeout_4__974818834';
我该怎么办?
服务器版本(来自PMA):
Server: Localhost via UNIX socket Server type: MySQL Server version: 5.7.20-0ubuntu0.16.04.1-log - (Ubuntu) Protocol version: 10 User: root@localhost Server charset: UTF-8 Unicode (utf8)
my.cnf文件:
[mysqld] query_cache_type=1 long_query_time=8 slow_query_log=ON query_cache_limit=32M innodb_buffer_pool_size=3G innodb_log_file_size=256M innodb_log_buffer_size=4M join_buffer_size=512K max_heap_table_size=64M tmp_table_size=64M table_open_cache=1024 innodb_lru_scan_depth=256 key_buffer_size=32M
当您遇到性能问题时,您必须查看整个图片以了解可以优化的位置。 专注于一个单一的症状将隐藏你失踪的其他重要细节。
通常在Wordpress中,每个SQL查询都在单个事务中运行。 这意味着UPDATE / DELETE / INSERT / ALTER查询返回,只有在数据在磁盘上后才能完成。
该查询可能会受到locking行或表的其他查询的影响,但对于您而言,情况并非如此,因为Lock_time较低。
这意味着这个简单的查询本身就是问题。 这个查询取决于磁盘系统是快速的。 您的MySQL磁盘速度将受到其他使用它的客户端的影响,如:
你可以从你的机器里面做什么? 首先确定你是否在虚拟机内运行。 如果这是一个VM与其他租户共享的可能性非常高。
检查磁盘上的延迟。 对于Linux运行iostat -x 1并查看await列。 应尽可能低。 对于Windows,请查看https://blogs.technet.microsoft.com/askcore/2012/02/07/measuring-disk-latency-with-windows-performance-monitor-perfmon/
超过200毫秒的延迟很高。
请记住,performance取决于你的看法。 在2000年,快速应用程序的性能今天会被认为是很慢的。