1. 確定可用的內(nèi)存大小
在設(shè)置MySQL的內(nèi)存大小之前,需要確定可用的內(nèi)存大小??梢酝ㄟ^(guò)以下命令查看可用的內(nèi)存大小:
該命令將顯示可用的內(nèi)存大?。ㄒ訫B為單位)。
2. 設(shè)置緩沖區(qū)
noDB緩沖池、MyISAM緩沖池、查詢(xún)緩存等。這些緩沖區(qū)的大小應(yīng)該根據(jù)數(shù)據(jù)庫(kù)的大小和訪問(wèn)模式進(jìn)行調(diào)整。
noDB緩沖池,可以使用以下命令設(shè)置:
nodb_buffer_pool_size = 70%可用內(nèi)存大小
對(duì)于MyISAM緩沖池,可以使用以下命令設(shè)置:
key_buffer_size = 20%可用內(nèi)存大小
對(duì)于查詢(xún)緩存,可以使用以下命令設(shè)置:
query_cache_size = 0
查詢(xún)緩存會(huì)導(dǎo)致性能下降,因此建議將其關(guān)閉。
3. 設(shè)置連接數(shù)
在MySQL中,每個(gè)連接都需要一定的內(nèi)存來(lái)處理。因此,需要限制連接的數(shù)量??梢允褂靡韵旅钤O(shè)置最大連接數(shù):
axnections = 100
4. 設(shè)置臨時(shí)表空間
在MySQL中,臨時(shí)表需要一定的內(nèi)存來(lái)存儲(chǔ)??梢允褂靡韵旅钤O(shè)置臨時(shí)表空間大小:
p_table_size = 32M
5. 設(shè)置其他緩沖區(qū)
在MySQL中,還有其他的緩沖區(qū)需要設(shè)置,包括排序緩沖區(qū)、線(xiàn)程緩沖區(qū)、日志緩沖區(qū)等。這些緩沖區(qū)的大小也應(yīng)該根據(jù)數(shù)據(jù)庫(kù)的大小和訪問(wèn)模式進(jìn)行調(diào)整。
可以使用以下命令設(shè)置排序緩沖區(qū)大?。?/p>
sort_buffer_size = 2M
可以使用以下命令設(shè)置線(xiàn)程緩沖區(qū)大?。?/p>
thread_cache_size = 128
可以使用以下命令設(shè)置日志緩沖區(qū)大小:
nodb_log_buffer_size = 8M
以上就是如何正確設(shè)置MySQL5.7的內(nèi)存的方法。正確的內(nèi)存設(shè)置可以提高數(shù)據(jù)庫(kù)的性能,避免內(nèi)存泄漏和性能下降。需要根據(jù)數(shù)據(jù)庫(kù)的大小和訪問(wèn)模式進(jìn)行調(diào)整。