參見(jiàn)官方文檔https://dev.MySQL.com/doc/refman/5.7/en/memory-storage-engine.html

創(chuàng)新互聯(lián)專注于網(wǎng)站建設(shè)|成都企業(yè)網(wǎng)站維護(hù)|優(yōu)化|托管以及網(wǎng)絡(luò)推廣,積累了大量的網(wǎng)站設(shè)計(jì)與制作經(jīng)驗(yàn),為許多企業(yè)提供了網(wǎng)站定制設(shè)計(jì)服務(wù),案例作品覆蓋混凝土攪拌機(jī)等行業(yè)。能根據(jù)企業(yè)所處的行業(yè)與銷售的產(chǎn)品,結(jié)合品牌形象的塑造,量身制作品質(zhì)網(wǎng)站。
總結(jié)
1、memory引擎表數(shù)據(jù)只存放在內(nèi)存中,插入數(shù)據(jù)后,文件也只有表結(jié)構(gòu)文件,沒(méi)有表數(shù)據(jù)文件, 重啟后,數(shù)據(jù)丟失 ,但是表結(jié)構(gòu)還在,表結(jié)構(gòu)文件也還在
2、memory引擎表,一個(gè)會(huì)話修改了數(shù)據(jù),其他會(huì)話可以立即看到修改后的數(shù)據(jù),和oracle的臨時(shí)表完全不同
3、要清空memory引擎表,delete、truncate、drop、重啟都可以,沒(méi)有類似oracle這樣的flush buffer_cache的直接清空內(nèi)存的方法
4、memory引擎表最大大小受參數(shù)max_heap_table_size的限制,具體見(jiàn)官方文檔
https://dev.mysql.com/doc/refman/5.7/en/server-system-variables.html#sysvar_max_heap_table_size
5、也就是說(shuō),momory引擎的表,除了這兩點(diǎn),表數(shù)據(jù)放在內(nèi)存中、重啟后數(shù)據(jù)丟失,其他一切都和普通表一樣。
6、生產(chǎn)環(huán)境不建議使用memory引擎,因?yàn)樗袃蓚€(gè)最大的缺點(diǎn),其一它只有表鎖沒(méi)有行鎖,這樣一旦表有更新操作,就會(huì)堵塞其他會(huì)話對(duì)這張表的讀寫(xiě)。其二它的數(shù)據(jù)存放在內(nèi)存中,一旦在M-S架構(gòu)中,S從庫(kù)重啟,S從庫(kù)數(shù)據(jù)就會(huì)丟失,但是M主庫(kù)數(shù)據(jù)還在,繼而影響主從同步,因?yàn)橹貑⒑笕绻盏揭粭lupdate語(yǔ)句后,主庫(kù)正常執(zhí)行,把該語(yǔ)句發(fā)送到從庫(kù)就會(huì)報(bào)錯(cuò)找不到更新的行,導(dǎo)致主從同步停止。
7、如果非要用memory引擎的優(yōu)點(diǎn),把數(shù)據(jù)存放在內(nèi)存中,可以考慮使用memory引擎臨時(shí)表,正好可以避免上面6的兩個(gè)缺點(diǎn)。
實(shí)驗(yàn)過(guò)程
mysql> use test1
mysql> create table tab3 (hid int) engine memory;
mysql> insert into tab3 values (1);
mysql> insert into tab3 values (1);
mysql> insert into tab3 values (1);
mysql> select count(*) from tab3;
+----------+
| count(*) |
+----------+
| 3 |
+----------+
此時(shí)查看tab3的數(shù)據(jù)文件,發(fā)現(xiàn)只有表結(jié)構(gòu)
[root@mydb ~]# ll /var/lib/mysql/test1 |grep tab3
-rw-r----- 1 mysql mysql 8558 Sep 30 11:00 tab3.frm
開(kāi)另一個(gè)會(huì)話
mysql> select count(*) from test1.tab3;
+----------+
| count(*) |
+----------+
| 3 |
+----------+
重啟數(shù)據(jù)庫(kù),再查看tab3的數(shù)據(jù)
mysql> select count(*) from test1.tab3;
+----------+
| count(*) |
+----------+
| 0 |
+----------+
此時(shí)查看tab3的數(shù)據(jù)文件,表結(jié)構(gòu)還在
[root@mydb ~]# ll /var/lib/mysql/test1 |grep tab3
-rw-r----- 1 mysql mysql 8558 Sep 30 11:00 tab3.frm
會(huì)話1
mysql> create table t1 (hid int);
mysql> create table t2 (hid int) engine=memory;
mysql> insert into t1 values(1),(2),(3);
mysql> insert into t2 values(1),(2),(3);
mysql> update t1 set hid=sleep(60) where hid=1;
會(huì)話2
mysql> select * from t1;
+------+
| hid |
+------+
| 1 |
| 2 |
| 3 |
+------+
正常執(zhí)行,不堵塞
會(huì)話1
mysql> update t2 set hid=sleep(60) where hid=1;
會(huì)話2
mysql> select * from t2;
--堵塞,直到會(huì)話1執(zhí)行完畢
分享題目:mysql關(guān)于memory引擎的表的總結(jié)
地址分享:http://chinadenli.net/article18/jigddp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供云服務(wù)器、外貿(mào)建站、企業(yè)建站、靜態(tài)網(wǎng)站、網(wǎng)站導(dǎo)航、小程序開(kāi)發(fā)
聲明:本網(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í)需注明來(lái)源: 創(chuàng)新互聯(lián)