mysql的一些运行效率等优化设置步骤

  • A+
所属分类:数据库技术

mysql的一些运行效率优化设置,建议拥有服务器的朋友,可以测试。

如果使用的是MySQL 5.0.x

以下内容保存替换MySQL中的my.ini,记得要修改basedir和datadir两个栏目的路径。

  1. [client]
  2. port=3306
  3. [mysql]
  4. default-character-set=gbk
  5. [mysqld]
  6. port=3306
  7. basedir="D:/web/mysql/"
  8. datadir="D:/web/mysql/Data/"
  9. default-character-set=gbk
  10. default-storage-engine=MYISAM
  11. max_connections=1910
  12. query_cache_limit=2M
  13. query_cache_size=64M
  14. query_cache_type=1
  15. table_cache=64
  16. tmp_table_size=32M
  17. thread_cache_size=64
  18. myisam_sort_buffer_size=8M
  19. key_buffer_size=256M
  20. read_buffer_size=64K
  21. read_rnd_buffer_size=256K
  22. sort_buffer_size=208K
  23. skip-bdb
  24. back_log=500
  25. skip-locking
  26. skip-innodb
  27. thread_concurrency=16
  28. max_connect_errors=30000
  29. wait_timeout=120
  30. max_allowed_packet=2M
  31. interactive_timeout=120
  32. local-infile = 0

增加数据库日志记录

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

  1. #Enter a name for the error log file. Otherwise a default name will be used.
  2. #log-error=
  3. #Enter a name for the query log file. Otherwise a default name will be used.
  4. #log=
  5. #Enter a name for the slow query log file. Otherwise a default name will be used.
  6. #log-slow-queries= log-slow-queries.txt
  7. #Enter a name for the update log file. Otherwise a default name will be used.
  8. #log-update=
  9. #Enter a name for the binary log. Otherwise a default name will be used.
  10. #log-bin=

增加中文全文索引

在MySQL的配置文件my.ini最下面加入以下内容。

  1. # Minimum word length to be indexed by the full text search index.
  2. # You might wish to decrease it if you need to search for shorter words.
  3. # Note that you need to rebuild your FULLTEXT index, after you have
  4. # modified this value.
  5. 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这一项点击右键,选择重启服务。