第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

MyISAM訴InnoDB

MyISAM訴InnoDB

犯罪嫌疑人X 2019-05-31 17:04:18
MyISAM訴InnoDB我要說的是,我正在做一個涉及大量數(shù)據(jù)庫寫作的項目(70%的插入和30%的讀取)。這一比率還將包括更新,我認為是一讀一寫。閱讀可能很臟(例如,我在閱讀時不需要100%準確的信息)。所討論的任務(wù)將是每小時處理100多萬個數(shù)據(jù)庫事務(wù)。我在網(wǎng)上讀過很多關(guān)于MyISAM和InnoDB之間的區(qū)別的文章,對我來說,MyISAM似乎是我在這個任務(wù)中使用的特定數(shù)據(jù)庫/表的明顯選擇。據(jù)我所讀,如果需要事務(wù),則InnoDB是很好的,因為行級鎖定是支持的。有沒有人有過這類負載(或更高的負荷)的經(jīng)驗?MyISAM是該走的路嗎?
查看完整描述

3 回答

?
白衣非少年

TA貢獻1155條經(jīng)驗 獲得超0個贊

我有一個簡短的討論表中的這個問題,這樣您就可以得出是否與InnoDBMyISAM.

下面簡要介紹一下在哪種情況下應(yīng)該使用哪個db存儲引擎:

                                                 MyISAM   InnoDB
----------------------------------------------------------------
Required full-text search                        Yes      5.6.4
----------------------------------------------------------------
Require transactions                                      Yes
----------------------------------------------------------------
Frequent select queries                          Yes      
----------------------------------------------------------------
Frequent insert, update, delete                           Yes
----------------------------------------------------------------
Row locking (multi processing on single table)            Yes
----------------------------------------------------------------
Relational base design                                    Yes

總結(jié)如下:

Frequent reading, almost no writing   => MyISAM
Full-text search in MySQL <= 5.5      => MyISAM

在所有其他情況下,InnoDB通常是最好的方法。


查看完整回答
反對 回復(fù) 2019-05-31
?
慕仙森

TA貢獻1827條經(jīng)驗 獲得超8個贊

我不是數(shù)據(jù)庫專家,也不是憑經(jīng)驗說話的。然而:

MyISAM表使用表級鎖定。..根據(jù)您的流量估計,您有接近200寫每秒。與MyISAM其中只有一種可能在任何時候都在進行中。..您必須確保您的硬件能夠跟上這些事務(wù),以避免溢出,也就是說,一個查詢所花費的時間不超過5ms。

這意味著您需要一個支持行級鎖定的存儲引擎,即InnoDB。

另一方面,編寫幾個簡單的腳本來模擬每個存儲引擎的負載,然后比較結(jié)果應(yīng)該是相當簡單的。


查看完整回答
反對 回復(fù) 2019-05-31
?
慕少森

TA貢獻2019條經(jīng)驗 獲得超9個贊

人們經(jīng)常談?wù)撔阅埽x與寫,外鍵等。但在我看來,存儲引擎還有另外一個必須具備的特性:原子更新。

試試這個:

  1. 對MyISAM表進行5秒的更新。
  2. 當更新正在進行時,比如說2.5秒,點擊Ctrl-C來中斷它.
  3. 觀察桌子上的效果。更新了多少行?有多少沒有更新?這個表是可讀的,還是當你點擊Ctrl-C時它被破壞了?
  4. 對InnoDB表進行相同的更新實驗,中斷正在進行的查詢。
  5. 觀察InnoDB表。

    行已更新。InnoDB已經(jīng)保證您有原子更新,如果無法提交完整的更新,則會回滾整個更改。而且,該表沒有損壞。即使您使用

    killall -9 mysqld

    模擬墜機。

當然,性能是可取的,但是不丟失數(shù)據(jù)應(yīng)該勝過那個。


查看完整回答
反對 回復(fù) 2019-05-31
  • 3 回答
  • 0 關(guān)注
  • 664 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號