python之路---MySQL&表的相關操作
阿新 • • 發佈:2018-12-08
與表相關的基本概念
什麼是表
MySQL中的表類似於檔案,其內的一行資料叫做記錄,記錄所對應的標題稱之為欄位
cid和caption就是表字段,下面的一行行內容就是記錄
儲存引擎介紹
與普通的檔案一樣,MySQL的表也有各種各樣的型別,表的型別不同,所對應的存取機制也不同。儲存引擎就是儲存資料,讀取資料,查詢資料,建立索引的實現方法,可以將其理解為是儲存和操作表的型別
MySQL不同於其它關係型資料庫為我們提供了多種儲存引擎
MySQL一些常用的儲存引擎
1.InnoDB儲存引擎
InnoDB是MySQL最為常用的儲存引擎,其設計目標主要是面向聯機處理事務的應用,該儲存引擎採用了聚集的方式,每張表都按照主鍵的順序進行儲存,如果沒有在表內指定主鍵,innodb會選取一個記錄唯一的欄位作為主鍵,如果仍然沒有,會生成一個隱式的欄位作為主鍵
2.Memory儲存引擎
該儲存引擎的資料都存放在記憶體中(重啟資料庫/資料庫崩潰都會導致表中記錄的丟失)--->常用於儲存臨時表資料,且預設使用的是雜湊索引,而非B+樹索引
3.blackhole儲存引擎:又稱黑洞儲存引擎
4.MyISAM儲存引擎:不支援事物,其緩衝池內只儲存索引檔案,而不儲存資料檔案
show engines\G #檢視所有支援的儲存引擎 show variables like 'storage_engine%'; #檢視正在使用的儲存引擎
使用不同的儲存引擎
建立一個innodb儲存引擎的表
create table t1(id int)engine=innodb;
發現innodb儲存引擎將表分為兩個檔案儲存,一個frm表用於儲存表結構,一個ibd用於儲存表索引和表的資料
建立一個MyISAM儲存引擎的表
create table t2(id int)engine=myisam;
發現該儲存引擎將表分為三個檔案儲存,frm為儲存表結構,MYD為儲存MyISAM的資料,MYI為儲存索引
建立一個blackhole儲存引擎和Memory儲存引擎
create table t3(id int)engine=memory; create table t4(id int)engine=blackhole;
都只有表結構