MySQL 優(yōu)化設置步驟
如果使用的是MySQL 5.0.x
可以直接將以下內(nèi)容保存替換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
增加數(shù)據(jù)庫日志記錄
在MySQL的配置文件my.ini最下面加入以下內(nèi)容,將你需要記錄的日志類型欄目前面的#注釋符去掉,然后=后面填寫日志文件名稱(該文件需手動建立,程序方可在其寫入日志)使其生效。
#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最下面加入以下內(nèi)容。
# 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個字的詞都不能被索引,全文索引功能就形同虛設了。國內(nèi)的空間商大部分可能并沒有注意到這個問題,沒有修改MySQL的默認設置。
為什么要用全文索引呢?
一般的數(shù)據(jù)庫搜索都是用的SQL的like語句,like語句是不能利用索引的,每次查詢都是從第一條遍歷至最后一條,查詢效率極其低下。一般數(shù)據(jù)超過10萬或者在線人數(shù)過多,like查詢都會導致數(shù)據(jù)庫崩潰。這也就是為什么很多程序都只提供標題搜索的原因了,因為如果搜索內(nèi)容,那就更慢了,幾萬數(shù)據(jù)就跑不動了。
MySQL全文索引是專門為了解決模糊查詢提供的,可以對整篇文章預先按照詞進行索引,搜索效率高,能夠支持百萬級的數(shù)據(jù)檢索。
如果您使用的是自己的服務器,請馬上進行設置,不要浪費了這個功能。
如果您使用的是虛擬主機,請馬上聯(lián)系空間商修改配置。首先,MySQL的這個默認值對于中文來說就是一個錯誤的設置,修改設置等于糾正了錯誤。其次,這個配置修改很簡單,也就是幾分鐘的事情,而且搜索效率提高也降低了空間商數(shù)據(jù)庫宕掉的幾率。如果你把本篇文章發(fā)給空間商,我相信絕大部分都會愿意改的。
特別注意:無論做以上哪一項修改后都必須重啟MySQL服務使修改生效。
重啟方法
方法一:在開始-運行輸入:net stop mysql 回車,再在運行輸入:net start mysql 回車。
方法二:或者開始-控制面板-管理工具-服務,然后找到 MySQL這一項點擊右鍵,選擇重啟服務。
相關文章
mysql now()函數(shù)調用系統(tǒng)時間不對的解決方法
mysql的now()函數(shù)與實際時間不符,本文就詳細的介紹一下mysql now()函數(shù)調用系統(tǒng)時間不對的解決方法,非常具有實用價值,需要的朋友可以參考下2023-05-05
最新MySql8.27主從復制及SpringBoot項目中的讀寫分離實戰(zhàn)教程
MySQL主從復制是一個異步的復制過程,底層是基于MySQL1數(shù)據(jù)庫自帶的二進制日志功能,這篇文章主要介紹了最新MySql8.27主從復制及SpringBoot項目中的讀寫分離實戰(zhàn)教程,需要的朋友可以參考下2022-08-08

