共計(jì) 1474 個(gè)字符,預(yù)計(jì)需要花費(fèi) 4 分鐘才能閱讀完成。
這篇文章主要介紹“MySQL 占用內(nèi)存過大如何解決”,在日常操作中,相信很多人在 MySQL 占用內(nèi)存過大如何解決問題上存在疑惑,丸趣 TV 小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”MySQL 占用內(nèi)存過大如何解決”的疑惑有所幫助!接下來,請跟著丸趣 TV 小編一起來學(xué)習(xí)吧!
前言
對于部分小資玩家來說,服務(wù)器數(shù)量和內(nèi)存往往是很有限的,像我個(gè)人的服務(wù)器配置就是 2 核 4G5M。
4G 內(nèi)存對于 Java 玩家來說,真的不大,開幾個(gè)中間件 + 自己的微服務(wù)真的還蠻擠的,然后又?jǐn)偵?MySQL 這個(gè)大冤種。我本機(jī)上的 MySQL 僅僅只占幾 M 內(nèi)存(雖然我不怎么用,但是本機(jī) MySQL 確實(shí)是開著的):
而服務(wù)器的則要占 400M,怎么說其實(shí)沒什么吞吐量,純粹是自己玩一玩,這內(nèi)存占用屬實(shí)有點(diǎn)吃不消啊。。。
解決方案
了解到可以通過修改配置來減小 MySQL 的內(nèi)存占用,便嘗試了一下,并進(jìn)行了記錄。由于我同時(shí)有兩臺(tái)服務(wù)器,一臺(tái)裝的是 windows service 2016,還有一臺(tái)裝的是 CentOS7,兩臺(tái)情況都是差不多的,故同時(shí)做兩份記錄,供大家參考。
找到配置文件 Windows Service 2016
配置文件的默認(rèn)位置是 C:\ProgramData\MySQL\MySQL Server 8.0\my.ini,如果有修改,則根據(jù)自己的實(shí)際情況找到。
CentOS7
配置文件的默認(rèn)路徑在 /etc/my.cnf,如果有修改,則根據(jù)自己的實(shí)際情況找到。
修改配置文件
Windows 上可以用 Ctrl + F 進(jìn)行搜索,Linux 上可以用‘/key’進(jìn)行搜索,不會(huì)的話可以參考一下百度。
我們需要找到并修改的東西一共有三個(gè):
找到 table_definition_cache,我們修改為 400
官方解釋為:可以存儲(chǔ)在定義緩存中的表定義數(shù)(來自.frm 文件)。如果使用大量表,可以創(chuàng)建大型表定義緩存以加快表的打開速度。與普通的表緩存不同,表定義緩存占用更少的空間,并且不使用文件描述符。最小值和默認(rèn)值均為 400。
找到 table_open_cache,我們修改為 256
MySQL 每打開一個(gè)表,都會(huì)讀入一些數(shù)據(jù)到 table_open_cache 緩存中,當(dāng) MySQL 在這個(gè)緩存中找不到相應(yīng)信息時(shí),才會(huì)去磁盤上讀取。
官方解釋為:所有線程的打開表數(shù)。增加該值會(huì)增加 mysqld 所需的文件描述符的數(shù)量。因此,您必須確保在 [mysqld safe] 部分的變量“open files limit”中將允許打開的文件量設(shè)置為至少 4096。
找到 performance_schema,修改為 off
如果找不到這個(gè)的話,直接在合適的地方加上 performance_schema = off 即可。
用于監(jiān)控 MySQL server 在一個(gè)較低級(jí)別的運(yùn)行過程中的資源消耗、資源等待等情況,關(guān)閉之后可以節(jié)省開銷,不會(huì)使 server 的行為發(fā)生變化。
修改完之后保存退出。
重啟 MySQLWindows Service 2016
以管理員身份啟動(dòng)控制臺(tái),輸入 net stop mysql,然后再輸入 net start mysql。
重啟之后還占 62M。
CentOS7
控制臺(tái)輸入 service mysqld restart 即可重啟。
如果不行的話,可以試試 /etc/init.d/mysqld restart 這個(gè)指令。
重啟之后占用 92M,比 Windows 那臺(tái)多點(diǎn)。
到此,關(guān)于“MySQL 占用內(nèi)存過大如何解決”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請繼續(xù)關(guān)注丸趣 TV 網(wǎng)站,丸趣 TV 小編會(huì)繼續(xù)努力為大家?guī)砀鄬?shí)用的文章!