1. 程式人生 > >【MYISAM和INNODB】【關係型資料庫和非關係資料庫】

【MYISAM和INNODB】【關係型資料庫和非關係資料庫】

1 MYISAM和INNODB

MYSQL的兩種儲存引擎區別(事務、鎖級別等等)

1.1 各自的適用場景?
MYISAM 不支援事務,不支援外來鍵,表鎖,插入資料時,鎖定整個表,查表總行數時,不需要全表掃描
INNODB 支援事務,支援外來鍵,行鎖,查表總行數時,全表掃描

1.2 InnoDB索引和MyISAM索引的區別?
一是主索引的區別,InnoDB的資料檔案本身就是索引檔案。而MyISAM的索引和資料是分開的。
二是輔助索引的區別:InnoDB的輔助索引data域儲存相應記錄主鍵的值而不是地址。而MyISAM的輔助索引和主索引沒有多大區別

2 關係型資料庫和非關係資料庫

2.1 關係型資料庫mysql

  • 關係型資料庫,是指採用了關係模型來組織資料的資料庫,
  • 關係型資料庫的最大特點就是事務的一致性;

2.1.1優點

  • 容易理解:二維表結構是非常貼近邏輯世界一個概念,關係模型相對網狀、層次等其他模型來說更容易理解;
  • 使用方便:通用的SQL語言使得操作關係型資料庫非常方便;
  • 易於維護:豐富的完整性(實體完整性、參照完整性和使用者定義的完整性)大大減低了資料冗餘和資料不一致的概率;
  • 支援SQL,可用於複雜的查詢。

2.1.2缺點

  • 為了維護一致性所付出的巨大代價就是其讀寫效能比較差;
  • 固定的表結構;
  • 不支援高併發讀寫需求;
  • 不支援海量資料的高效率讀寫;

2.2 非關係型資料庫 

  • 使用鍵值對儲存資料;
  • 分散式;

2.2.1優點

  • 無需經過sql層的解析,讀寫效能很高
  • 基於鍵值對,資料沒有耦合性,容易擴充套件
  • 儲存資料的格式:nosql的儲存格式是key,value形式

2.2.2缺點

  • 不支援事務
  • 不提供sql支援