【发布时间】:2019-04-02 14:41:12
【问题描述】:
我创建了一个时间跟踪应用程序,它可以捕捉 400 人每分钟的活动。
意味着如果没有人查询我的数据库,我每分钟仍有 400 个对 MySQL 的插入请求。
到目前为止一切正常,但我必须为用户提供一个仪表板,让他们可以看到他们跟踪时间的每个条目。
现在我有 400 人查询我的数据库,在启动查询页面后系统变得非常慢,磁盘使用率达到 100% 的时间很长。我计划在服务器上部署更多应用,但在继续之前我想解决这个问题。
我正在考虑将硬盘从 HHD 更改为 SSD 以提高读写速度,但想知道是否有任何设置可以调整我的默认 my.ini 文件以获得更好的 MySQL 性能
下面是我在my-innodb-heavy-4G.ini 的帮助下修改的my.ini 文件,我的PC 运行MySQL 10.1.36-MariaDB,64 位,3.60GHz,i7,8 GB RAM。
我只是想知道以下设置是否正确。我不希望我的服务器崩溃并停止工作。请帮助我添加或删除任何可能导致问题的设置行。
[client]
# password = your_password
port = 3306
socket = "E:/xampp2/mysql/mysql.sock"
# Here follows entries for some specific programs
# The MySQL server
[mysqld]
port= 3306
socket = "E:/xampp2/mysql/mysql.sock"
basedir = "E:/xampp2/mysql"
tmpdir = "E:/xampp2/tmp"
datadir = "E:/xampp2/mysql/data"
pid_file = "mysql.pid"
# enable-named-pipe
key_buffer_size = 32M
max_allowed_packet = 16M
#
back_log = 50
slow_query_log
long_query_time = 8
#
table_open_cache = 2048
binlog_cache_size = 5M
max_heap_table_size = 64M
join_buffer_size = 8M
tmp_table_size = 64M
sort_buffer_size = 8M
net_buffer_length = 8M
read_buffer_size = 8M
read_rnd_buffer_size = 32M
myisam_sort_buffer_size = 128M
bulk_insert_buffer_size = 64M
myisam_max_sort_file_size = 10G
myisam_repair_threads = 1
myisam_recover
#
thread_cache_size = 8M
query_cache_size = 64M
query_cache_limit = 2M
thread_concurrency = 8M
thread_stack = 240K
max_connections = 5000
log_error = "mysql_error.log"
plugin_dir = "E:/xampp2/mysql/lib/plugin/"
server-id = 1
innodb_data_home_dir = "E:/xampp2/mysql/data"
innodb_data_file_path = ibdata1:10M:autoextend
innodb_log_group_home_dir = "E:/xampp2/mysql/data"
innodb_buffer_pool_size = 2G
innodb_additional_mem_pool_size = 200M
innodb_log_file_size = 256M
innodb_log_buffer_size = 8M
innodb_flush_log_at_trx_commit = 1
innodb_lock_wait_timeout = 120
innodb_write_io_threads = 8
innodb_read_io_threads = 8
innodb_thread_concurrency = 16
innodb_log_files_in_group = 3
innodb_max_dirty_pages_pct = 90
[mysqldump]
quick
max_allowed_packet = 16M
[mysql]
no-auto-rehash
[myisamchk]
key_buffer_size = 512M
sort_buffer_size = 512M
read_buffer = 8M
write_buffer = 8M
[mysqlhotcopy]
interactive-timeout
【问题讨论】:
-
附加信息请求。在 pastebin.com 上发布并分享链接。您的 MySQL 主机服务器的 RAM 大小 文本结果: B) SHOW GLOBAL STATUS;至少 24 小时正常运行时间后 C) 显示全局变量; D) 显示完整的处理程序; E) 完整的 MySQLTuner 报告信息,如果可用,包括 - htop OR top OR mytop 用于大多数活动应用程序,ulimit -a 用于 linux/unix 限制列表,iostat -xm 5 3 用于按设备和核心/cpu 计数的 IOPS,用于服务器工作负载调优分析。
-
听起来像是一个简单的索引问题。但我们需要查看
SHOW CREATE TABLE、查询和EXPLAIN SELECT ...。 (Wilson 的请求可能会发现其他需要修复的问题。)还有,桌子有多大? -
@YatendraRanawat 大约 9 个月后,您还没有在 2019 年 4 月 3 日发布任何请求,因此您不再需要任何有关您的问题的帮助。请指出您希望我们考虑的任何事项