MySQL是使用關系型數據庫管理系統來存儲數據的一種軟件,它將數據以特定的格式儲存在計算機上。MySQL數據庫針對存儲數據選用的文件格式可以分為InnoDB和MyISAM兩種,下面我們來逐一了解這兩種文件格式。
首先是InnoDB存儲引擎,它采用的是聚集索引的技術,將數據以B+樹的形式存儲。每個表都有一個聚集索引,聚集索引的最小單位是頁,一般大小為16KB。因此,當數據行數增加時,InnoDB的聚集索引會累計到大小為16KB的頁,逐步構建一個B+樹,以便快速查詢數據。在InnoDB中,表格刪除的數據并不會真的被刪除,而是被標記為已刪除,在下一次的數據更新中被覆蓋。這就是為什么在InnoDB中,表格的大小會隨著數據更新的次數而增加。
MyISAM存儲引擎則采用非聚集索引技術,它的數據格式相對簡單,因此用于存儲數據的速度也更快,但是它不支持事務,并且對于高并發性的應用程序處理效率較低。MyISAM的數據結構是基于B+樹的固定大小的索引。(數據文件大小在4GB以內)當刪除或更新MyISAM表格的數據時,會真實地把它們從磁盤上刪除,這就是為什么在MyISAM表格中,不同版本之間的性能差異如此明顯的原因。
總體而言,我們可以根據應用程序的需求來選擇使用InnoDB還是MyISAM存儲引擎,如果需要更好的性能,可以選擇使用MyISAM(\pre>USE tablename; ENGINE=MYISAM;),如果有更高的安全需求,應該選擇InnoDB(\pre>USE tablename;ENGINE=INNODB;)
下一篇mysql存儲文章