使用

超過十年行業(yè)經(jīng)驗(yàn),技術(shù)領(lǐng)先,服務(wù)至上的經(jīng)營(yíng)模式,全靠網(wǎng)絡(luò)和口碑獲得客戶,為自己降低成本,也就是為客戶降低成本。到目前業(yè)務(wù)范圍包括了:做網(wǎng)站、網(wǎng)站建設(shè),成都網(wǎng)站推廣,成都網(wǎng)站優(yōu)化,整體網(wǎng)絡(luò)托管,微信平臺(tái)小程序開發(fā),微信開發(fā),重慶App定制開發(fā),同時(shí)也可以讓客戶的網(wǎng)站和網(wǎng)絡(luò)營(yíng)銷和我們一樣獲得訂單和生意!
unbuffered
cursor
可以避免內(nèi)存問題。
cursor
默認(rèn)使用
buffered
模式。這種模式會(huì)把所有結(jié)果集返回并載入內(nèi)存。如果結(jié)果集很大的話,內(nèi)存會(huì)爆。
unbuffered
cursor
是每次只將下一行結(jié)果返回,內(nèi)存占用很小。不過這種模式缺點(diǎn)很多,所以沒有作為默認(rèn)的模式。
以MySQL 8.0 來說,通過查看 8.0 的官方文檔得知,8.0 的臨時(shí)表空間分為會(huì)話臨時(shí)表空間和全局臨時(shí)表空間,會(huì)話臨時(shí)表空間存儲(chǔ)用戶創(chuàng)建的臨時(shí)表和當(dāng) InnoDB 配置為磁盤內(nèi)部臨時(shí)表的存儲(chǔ)引擎時(shí)由優(yōu)化器創(chuàng)建的內(nèi)部臨時(shí)表,當(dāng)會(huì)話斷開連接時(shí),其臨時(shí)表空間將被截?cái)嗖⑨尫呕爻刂校灰簿褪钦f,在 8.0 中有一個(gè)專門的會(huì)話臨時(shí)表空間,當(dāng)會(huì)話被殺掉后,可以回收磁盤空間;而原來的 ibtmp1 是現(xiàn)在的全局臨時(shí)表空間,存放的是對(duì)用戶創(chuàng)建的臨時(shí)表進(jìn)行更改的回滾段,在 5.7 中 ibtmp1 存放的是用戶創(chuàng)建的臨時(shí)表和磁盤內(nèi)部臨時(shí)表;
也就是在 8.0 和 5.7 中 ibtmp1 的用途發(fā)生了變化,5.7 版本臨時(shí)表的數(shù)據(jù)存放在 ibtmp1 中,在 8.0 版本中臨時(shí)表的數(shù)據(jù)存放在會(huì)話臨時(shí)表空間,如果臨時(shí)表發(fā)生更改,更改的 undo 數(shù)據(jù)存放在 ibtmp1 中;
實(shí)驗(yàn)驗(yàn)證:將之前的查詢結(jié)果保存成臨時(shí)表,對(duì)應(yīng)會(huì)話是 45 號(hào),通過查看對(duì)應(yīng)字典表,可知 45 號(hào)會(huì)話使用了 temp_8.ibt 這個(gè)表空間,通過把查詢保存成臨時(shí)表,可以用到會(huì)話臨時(shí)表空間,如下圖:
下一步殺掉 45 號(hào)會(huì)話,發(fā)現(xiàn) temp_8.ibt 空間釋放了,變?yōu)榱顺跏即笮。瑺顟B(tài)為非活動(dòng)的,證明在 mysql8.0 中可以通過殺掉會(huì)話來釋放臨時(shí)表空間。
總結(jié):在 mysql5.7 時(shí),殺掉會(huì)話,臨時(shí)表會(huì)釋放,但是僅僅是在 ibtmp 文件里標(biāo)記一下,空間是不會(huì)釋放回操作系統(tǒng)的。如果要釋放空間,需要重啟數(shù)據(jù)庫;在 mysql8.0 中可以通過殺掉會(huì)話來釋放臨時(shí)表空間。
操作系統(tǒng):CentOS 6.2
現(xiàn)象:MySQL無法啟動(dòng)
查找問題發(fā)現(xiàn):存放mysql數(shù)據(jù)分區(qū)100%
[root@jinniu-test3 mysql]# df -h
文件系統(tǒng) 容量 已用 可用 已用%% 掛載點(diǎn)
/dev/sda2 49G 49G 20K 100% /
tmpfs 933M 0 933M 0% /dev/shm
/dev/sda1 194M 31M 153M 17% /boot
/dev/sda5 219G 701M 207G 1% /opt
檢查/etc/my.cnf,數(shù)據(jù)文件默認(rèn)存放于/var/lib/mysql下
確認(rèn)此文件夾確實(shí)過大
解決方案:轉(zhuǎn)移存放目錄,修改my.cnf或者軟連接回來
[root@-_- ~]# cp -Rp /var/lib/mysql /opt/ --帶權(quán)限拷貝整個(gè)目錄
修改/etc/my.cnf配置datadir=/opt/mysql指向新位置
重啟mysql發(fā)現(xiàn)無法啟動(dòng)
[root@-_- ~]# service mysqld start
MySQL Daemon failed to start.
正在啟動(dòng) mysqld: [失敗]
檢查/var/log/mysqld.log文件最后
[root@-_- ~]# tail -20 /var/log/mysqld.log
...
130301 11:52:05 [Warning] Can't create test file /opt/mysql/-_-.lower-test
130301 11:52:05 [Warning] Can't create test file /opt/mysql/-_-.lower-test
...
網(wǎng)絡(luò)搜索問題得知是這臺(tái)機(jī)器啟用SElinux 安全策略引起的
使用命令可以解決
[root@-_- ~]# chcon -R -t mysqld_db_t /opt/mysql
實(shí)在不行,禁用SElinux
執(zhí)行:setenforce 0
新聞標(biāo)題:mysql空間滿了怎么弄,mysql剩余空間
當(dāng)前URL:http://chinadenli.net/article28/heosjp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供移動(dòng)網(wǎng)站建設(shè)、關(guān)鍵詞優(yōu)化、網(wǎng)站導(dǎo)航、、電子商務(wù)、網(wǎng)頁設(shè)計(jì)公司
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)