1. 程式人生 > >python之路---MySQL&表的相關操作

python之路---MySQL&表的相關操作

與表相關的基本概念

什麼是表

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;

都只有表結構