MySQL 优化设置步骤


如果使用的是MySQL 5.0.x
可以直接将以下内容保存替换MySQL中的my.ini,记得要修改basedir和datadir两个栏目的路径。

复制代码 代码如下:

[client]
port=3306
[mysql]
default-character-set=gbk
[mysqld]
port=3306
basedir="D:/web/mysql/"
datadir="D:/web/mysql/Data/"
default-character-set=gbk
default-storage-engine=MYISAM
max_connections=1910
query_cache_limit=2M
query_cache_size=64M
query_cache_type=1
table_cache=64
tmp_table_size=32M
thread_cache_size=64
myisam_sort_buffer_size=8M
key_buffer_size=256M
read_buffer_size=64K
read_rnd_buffer_size=256K
sort_buffer_size=208K
skip-bdb
back_log=500
skip-locking
skip-innodb
thread_concurrency=16
max_connect_errors=30000
wait_timeout=120
max_allowed_packet=2M
interactive_timeout=120
local-infile = 0

增加数据库日志记录
在MySQL的配置文件my.ini最下面加入以下内容,将你需要记录的日志类型栏目前面的#注释符去掉,然后=后面填写日志文件名称(该文件需手动建立,程序方可在其写入日志)使其生效。
复制代码 代码如下:

#Enter a name for the error log file. Otherwise a default name will be used.
#log-error=
#Enter a name for the query log file. Otherwise a default name will be used.
#log=
#Enter a name for the slow query log file. Otherwise a default name will be used.
#log-slow-queries= log-slow-queries.txt
#Enter a name for the update log file. Otherwise a default name will be used.
#log-update=
#Enter a name for the binary log. Otherwise a default name will be used.
#log-bin=

增加中文全文索引
在MySQL的配置文件my.ini最下面加入以下内容。
复制代码 代码如下:

# Minimum word length to be indexed by the full text search index.
# You might wish to decrease it if you need to search for shorter words.
# Note that you need to rebuild your FULLTEXT index, after you have
# modified this value.
ft_min_word_len = 1

从MySQL4.0开始就支持全文索引功能,但是MySQL默认的最小索引长度是4。如果是英文默认值是比较合理的,但是中文绝大部分词都是2个字符,这就导致小于4个字的词都不能被索引,全文索引功能就形同虚设了。国内的空间商大部分可能并没有注意到这个问题,没有修改MySQL的默认设置。

为什么要用全文索引呢?

一般的数据库搜索都是用的SQL的like语句,like语句是不能利用索引的,每次查询都是从第一条遍历至最后一条,查询效率极其低下。一般数据超过10万或者在线人数过多,like查询都会导致数据库崩溃。这也就是为什么很多程序都只提供标题搜索的原因了,因为如果搜索内容,那就更慢了,几万数据就跑不动了。

MySQL全文索引是专门为了解决模糊查询提供的,可以对整篇文章预先按照词进行索引,搜索效率高,能够支持百万级的数据检索。

如果您使用的是自己的服务器,请马上进行设置,不要浪费了这个功能。

如果您使用的是虚拟主机,请马上联系空间商修改配置。首先,MySQL的这个默认值对于中文来说就是一个错误的设置,修改设置等于纠正了错误。其次,这个配置修改很简单,也就是几分钟的事情,而且搜索效率提高也降低了空间商数据库宕掉的几率。如果你把本篇文章发给空间商,我相信绝大部分都会愿意改的。

特别注意:无论做以上哪一项修改后都必须重启MySQL服务使修改生效。
重启方法
方法一:在开始-运行输入:net stop mysql 回车,再在运行输入:net start mysql 回车
方法二:或者开始-控制面板-管理工具-服务,然后找到 MySQL这一项点击右键,选择重启服务

如果使用的是MySQL 5.0.x
可以直接将以下内容保存替换MySQL中的my.ini,记得要修改basedir和datadir两个栏目的路径。
复制代码 代码如下:
[client]
port=3306
[mysql]
default-character-set=gbk
[mysqld]
port=3306
basedir="D:/web/mysql/"
datadir="D:/web/mysql/Data/"
default-character-set=gbk
default-storage-engine=MYISAM
max_connections=1910
query_cache_limit=2M
query_cache_size=64M
query_cache_type=1
table_cache=64
tmp_table_size=32M
thread_cache_size=64
myisam_sort_buffer_size=8M
key_buffer_size=256M
read_buffer_size=64K
read_rnd_buffer_size=256K
sort_buffer_size=208K
skip-bdb
back_log=500
skip-locking
skip-innodb
thread_concurrency=16
max_connect_errors=30000
wait_timeout=120
max_allowed_packet=2M
interactive_timeout=120
local-infile = 0

增加数据库日志记录
在MySQL的配置文件my.ini最下面加入以下内容,将你需要记录的日志类型栏目前面的#注释符去掉,然后=后面填写日志文件名称(该文件需手动建立,程序方可在其写入日志)使其生效。
复制代码 代码如下:
#Enter a name for the error log file. Otherwise a default name will be used.
#log-error=
#Enter a name for the query log file. Otherwise a default name will be used.
#log=
#Enter a name for the slow query log file. Otherwise a default name will be used.
#log-slow-queries= log-slow-queries.txt
#Enter a name for the update log file. Otherwise a default name will be used.
#log-update=
#Enter a name for the binary log. Otherwise a default name will be used.
#log-bin=

增加中文全文索引
在MySQL的配置文件my.ini最下面加入以下内容。
复制代码 代码如下:
# Minimum word length to be indexed by the full text search index.
# You might wish to decrease it if you need to search for shorter words.
# Note that you need to rebuild your FULLTEXT index, after you have
# modified this value.
ft_min_word_len = 1

从MySQL4.0开始就支持全文索引功能,但是MySQL默认的最小索引长度是4。如果是英文默认值是比较合理的,但是中文绝大部分词都是2个字符,这就导致小于4个字的词都不能被索引,全文索引功能就形同虚设了。国内的空间商大部分可能并没有注意到这个问题,没有修改MySQL的默认设置。

为什么要用全文索引呢?

一般的数据库搜索都是用的SQL的like语句,like语句是不能利用索引的,每次查询都是从第一条遍历至最后一条,查询效率极其低下。一般数据超过10万或者在线人数过多,like查询都会导致数据库崩溃。这也就是为什么很多程序都只提供标题搜索的原因了,因为如果搜索内容,那就更慢了,几万数据就跑不动了。

MySQL全文索引是专门为了解决模糊查询提供的,可以对整篇文章预先按照词进行索引,搜索效率高,能够支持百万级的数据检索。

如果您使用的是自己的服务器,请马上进行设置,不要浪费了这个功能。

如果您使用的是虚拟主机,请马上联系空间商修改配置。首先,MySQL的这个默认值对于中文来说就是一个错误的设置,修改设置等于纠正了错误。其次,这个配置修改很简单,也就是几分钟的事情,而且搜索效率提高也降低了空间商数据库宕掉的几率。如果你把本篇文章发给空间商,我相信绝大部分都会愿意改的。

特别注意:无论做以上哪一项修改后都必须重启MySQL服务使修改生效。
重启方法
方法一:在开始-运行输入:net stop mysql 回车,再在运行输入:net start mysql 回车
方法二:或者开始-控制面板-管理工具-服务,然后找到 MySQL这一项点击右键,选择重启服务


« 
» 
快速导航

Copyright © 2016 phpStudy | 豫ICP备2021030365号-3