欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

mysql關于memory引擎的表的總結

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

創(chuàng)新互聯(lián)專注于網(wǎng)站建設|成都企業(yè)網(wǎng)站維護|優(yōu)化|托管以及網(wǎng)絡推廣,積累了大量的網(wǎng)站設計與制作經(jīng)驗,為許多企業(yè)提供了網(wǎng)站定制設計服務,案例作品覆蓋混凝土攪拌機等行業(yè)。能根據(jù)企業(yè)所處的行業(yè)與銷售的產品,結合品牌形象的塑造,量身制作品質網(wǎng)站。

總結

1、memory引擎表數(shù)據(jù)只存放在內存中,插入數(shù)據(jù)后,文件也只有表結構文件,沒有表數(shù)據(jù)文件, 重啟后,數(shù)據(jù)丟失 ,但是表結構還在,表結構文件也還在

2、memory引擎表,一個會話修改了數(shù)據(jù),其他會話可以立即看到修改后的數(shù)據(jù),和oracle的臨時表完全不同

3、要清空memory引擎表,delete、truncate、drop、重啟都可以,沒有類似oracle這樣的flush buffer_cache的直接清空內存的方法

4、memory引擎表最大大小受參數(shù)max_heap_table_size的限制,具體見官方文檔

https://dev.mysql.com/doc/refman/5.7/en/server-system-variables.html#sysvar_max_heap_table_size

5、也就是說,momory引擎的表,除了這兩點,表數(shù)據(jù)放在內存中、重啟后數(shù)據(jù)丟失,其他一切都和普通表一樣。

6、生產環(huán)境不建議使用memory引擎,因為它有兩個最大的缺點,其一它只有表鎖沒有行鎖,這樣一旦表有更新操作,就會堵塞其他會話對這張表的讀寫。其二它的數(shù)據(jù)存放在內存中,一旦在M-S架構中,S從庫重啟,S從庫數(shù)據(jù)就會丟失,但是M主庫數(shù)據(jù)還在,繼而影響主從同步,因為重啟后如果收到一條update語句后,主庫正常執(zhí)行,把該語句發(fā)送到從庫就會報錯找不到更新的行,導致主從同步停止。

7、如果非要用memory引擎的優(yōu)點,把數(shù)據(jù)存放在內存中,可以考慮使用memory引擎臨時表,正好可以避免上面6的兩個缺點。

實驗過程

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 |

+----------+

此時查看tab3的數(shù)據(jù)文件,發(fā)現(xiàn)只有表結構

[root@mydb ~]# ll /var/lib/mysql/test1 |grep tab3

-rw-r----- 1 mysql mysql    8558 Sep 30 11:00 tab3.frm

開另一個會話

mysql> select count(*) from test1.tab3;

+----------+

| count(*) |

+----------+

|        3 |

+----------+

重啟數(shù)據(jù)庫,再查看tab3的數(shù)據(jù)

mysql> select count(*) from test1.tab3;

+----------+

| count(*) |

+----------+

|        0 |

+----------+

此時查看tab3的數(shù)據(jù)文件,表結構還在

[root@mydb ~]# ll /var/lib/mysql/test1 |grep tab3

-rw-r----- 1 mysql mysql    8558 Sep 30 11:00 tab3.frm

會話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;


會話2

mysql> select * from t1;

+------+

| hid  |

+------+

|    1 |

|    2 |

|    3 |

+------+

正常執(zhí)行,不堵塞


會話1

mysql> update t2 set hid=sleep(60) where hid=1;


會話2

mysql> select * from t2;

--堵塞,直到會話1執(zhí)行完畢

分享題目:mysql關于memory引擎的表的總結
地址分享:http://www.chinadenli.net/article18/jigddp.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供云服務器外貿建站企業(yè)建站靜態(tài)網(wǎng)站網(wǎng)站導航小程序開發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站建設