最近我在使用MySQL內存表時,發現了一個奇怪的問題:數據保存不了了。
一開始我以為是我的操作有誤,但是我檢查了多次,發現自己并沒有什么錯誤。于是我開始查找解決辦法。
CREATE TABLE `test` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(50) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MEMORY DEFAULT CHARSET=utf8; INSERT INTO test (name) VALUES ('Alice'); INSERT INTO test (name) VALUES ('Bob'); INSERT INTO test (name) VALUES ('Cathy');
在我執行上述代碼后,數據成功保存到了內存表中。但是當我關閉MySQL服務再重新啟動之后,發現數據丟失了。
我意識到,內存表只在內存中存在,不像磁盤表那樣可以持久化保存。一旦MySQL服務關閉,內存表中的所有數據也就隨之消失了。
那么,如何才能讓數據持久化保存呢?其實方法很簡單——將內存表轉化為磁盤表即可。
ALTER TABLE test ENGINE=InnoDB;
通過將內存表的引擎類型改為InnoDB,數據就能夠保存到磁盤中了。
綜上所述,操作MySQL內存表時應該注意其數據保存方式,避免數據丟失的情況發生。
上一篇MySQL內存控制
下一篇gson拼裝json串