我在Windows Server 2008上运行MySql时遇到问题,该服务器具有32 GB Ram和Intel Xeon 2.70四核处理器。
数据库只有258 MB。 在运行php脚本时,它从数据库导出数据并转储到dbf文件中。这需要50分钟。
CPU使用率约为50%。主要是通过mysqld.exe。 即使单个用户登录,CPU使用率也会下降约30%。我测试了3个用户并且达到了63%
以下是my.ini的当前配置:
[client]
port = 3306
socket = "C:/xampp/mysql/mysql.sock"
[mysqld]
port= 3306
socket = "C:/xampp/mysql/mysql.sock"
basedir = "C:/xampp/mysql"
tmpdir = "C:/xampp/tmp"
datadir = "D:/ADAT_System/Database/data"
pid_file = "mysql.pid"
key_buffer = 16M
max_allowed_packet = 1M
sort_buffer_size = 512K
net_buffer_length = 8K
read_buffer_size = 256K
read_rnd_buffer_size = 512K
myisam_sort_buffer_size = 8M
log_error = "mysql_error.log"
log-output=FILE
slow_query_log = ON
long_query_time = 5
query_cache_size = 128MB
query_cache_type = ON
query_cache_limit = 10MB
plugin_dir = "C:/xampp/mysql/lib/plugin/"
skip-federated
server-id
innodb_data_home_dir = "D:/ADAT_System/Database/data"
innodb_data_file_path = ibdata1:10M:autoextend
innodb_log_group_home_dir = "D:/ADAT_System/Database/data"
innodb_buffer_pool_size = 16M
innodb_additional_mem_pool_size = 2M
innodb_log_file_size = 5M
innodb_log_buffer_size = 8M
innodb_flush_log_at_trx_commit = 1
innodb_lock_wait_timeout = 50
[mysqldump]
quick
max_allowed_packet = 16M
[mysql]
no-auto-rehash
[isamchk]
key_buffer = 20M
sort_buffer_size = 20M
read_buffer = 2M
write_buffer = 2M
[myisamchk]
[mysqlhotcopy]
interactive-timeout
有人可以帮我优化MySQL。我对此很新。
谢谢, 人士Himanshu
答案 0 :(得分:1)
一般来说,SQL请求(假设数据库是本地的)应该比这更快。 *理所当然的。 试着在这里寻找一个很好的性能调整列表。 http://www.askapache.com/mysql/performance-tuning-mysql.html
除此之外,我假设你的请求的结构。 尝试将您的呼叫保持在极少数请求(1-10)中并一次性处理数据。 执行许多请求可能会阻碍系统并大幅降低性能。 您的服务器具有足够的内存和处理能力。
这就是我现在能提供的最好的东西。
答案 1 :(得分:0)
看看MySQLTuner-0.6。它在codeplex上。它为我提供了大量优化环境的提示。