下面是我的一台运行 MySQL 5.5 的 PC 的 my.ini 文件,内存为 1 GB。它不使用并发连接,我们为单个应用程序和单个用户使用独立 PC。
# MySQL Server Instance Configuration File
# ----------------------------------------------------------------------
# CLIENT SECTION
[client]
port=3306
[mysql]
default-character-set=latin1
# SERVER SECTION
[mysqld]
log-bin=E:/CRITICAL_MYSQL_LOGGING/AUTOMATED_BINARY_LOGS/MySqlBinLog
# The TCP/IP Port the MySQL Server will listen on
port=3306
#Path to installation directory. All paths are usually resolved relative to this.
basedir="C:/Program Files/MySQL/MySQL Server 5.5/"
#Path to the database root
datadir="C:/Documents and Settings/All Users/Application Data/MySQL/MySQL Server 5.5/Data/"
# The default character set that will be used when a new schema or table is
# created and no character set is defined
character-set-server=latin1
# The default storage engine that will be used when create new tables when
default-storage-engine=INNODB
# Set the SQL mode to strict
sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
# The maximum amount of concurrent sessions the MySQL server will
# allow.
max_connections=02
# Query cache is used to cache SELECT results and later return them
# without actual executing the same query once again.
query_cache_size=15M
# The number of open tables for all threads.
table_cache=256
# Maximum size for internal (in-memory) temporary tables.
tmp_table_size=9M
# How many threads we should keep in a cache for reuse. When a client
# disconnects
thread_cache_size=8
#*** INNODB Specific options ***
innodb_additional_mem_pool_size=20M
innodb_flush_log_at_trx_commit=1
innodb_log_buffer_size=1M
innodb_buffer_pool_size=500M
innodb_log_file_size=10M
innodb_thread_concurrency=8
log-queries-not-using-indexes
log-warnings
log=E:/CRITICAL_MYSQL_LOGGING/QUERY_LOGS/QueryLog
log-error=E:/CRITICAL_MYSQL_LOGGING/ERROR_LOGS/ErrorLog
log-slow-queries=E:/CRITICAL_MYSQL_LOGGING/SLOW_QUERY_LOGS/SlowQueryLog
log-bin-index=E:/CRITICAL_MYSQL_LOGGING/BinLogIndexFile
long_query_time=2
我已经更新了原来的 my.ini 文件。请建议 1 GB 单用户 PC 的更好值。
我还想知道如何刷新日志以及何时刷新日志。
您需要更多内存。Windows 在 1 G RAM 的情况下几乎无法生存。我会在机器中放置至少 4 Gigs。
MrDenny 关于您的 RAM 的看法是正确的。Windows 本身会占用大量 RAM,而无需执行任何其他操作。然后将总 RAM 的一半发送到 innodb 缓冲池将立即导致性能问题。
除此之外,我将对您设置的“tmp_table_size”提出警告。从手册
如果您想将 tmp_table_size 增加到 16M 以上(max_heap_table_size 的默认值),您也需要增加该变量。
至于刷新二进制日志,您可以通过发出命令来执行此操作:
您可以在内置的事件计划程序中安排它。
首先创建一个存储过程来刷新二进制日志:
现在在每小时发生一次的事件中调用 sp_FlushBinaryLogs(或者您可以将其设置为您想要的任何时间表):
不要忘记激活事件调度程序。你可以做两件事
无需重新启动 mysql,您可以使用以下命令打开事件调度程序