一、儲存引擎
基本介紹:
1、MySQL的表類型由儲存引擎(Storage Engines)決定,主要包括MyISAM、innoDB、Memory等。
2、MySQL數據表主要支持六種類型,分別是:CSV、Memory、ARCHIVE、MRG_MYISAN、MYISAM、InnoBDB。
3、這六種又分為兩類,一類是“事務安全型”,比如:InnoDB;其余屬于第二類,稱為“非事務安全型”
指令:
查看所有的儲存結構:
SHOW ENGINES
主要的存儲引擎/表類型特點:
小結:
1、MyISAM不支持事務,也不支持外鍵,但其訪問速度快,對事務完整性沒有要求
2、InnoDB儲存引擎提供具有提交、回滾、崩潰恢復能力的事務安全。但比起MyISAM儲存引擎,InnoDB寫的效率差一些并且會占用更多的磁盤空間以保留數據和索引
3、MEMORY儲存引擎使用存在內存中的內容來創建表,每個MEMORY表只實際對應一個磁盤文件。MEMORY類型的表訪問速度非常快,因為數據是放在內存中的,沒有I/O操作,而且默認是使用HASH索引。但是一旦服務關閉[ net stop mysql ],表中的數據就會丟失,表的結構還在。通常這用來儲存用戶 在線/離線 這種經常變化的數據
操作:
創建MyISAM類型的表:
create table t(id int,'name' varchar(32)) engine myisam
修改儲存引擎:
alter table 表名 engine = 儲存引擎名稱
二、視圖
基本概念:
1、視圖是一個虛擬表,其內容由查詢定義。同真實的表一樣,視圖能包含列,其數據來自于對應的真實表(基表)
2、視圖和基表關系的示意圖
基本使用:
1.創建視圖
create view 視圖名 as <select語句>2.修改視圖
alter view 視圖名 as <select語句>3.查看創建視圖的指令
show create view 視圖名4.刪除視圖
drop view 視圖1,視圖2查看結構:
desc t_view在視圖中創建新的視圖create view 視圖中視圖名 as select no,name from 視圖名
視圖中的數據變化可以影響基表,基表的數據變化也會影響視圖
在視圖中創建新的視圖,也是指向基表
視圖最佳實踐??
-
??安全??
一些數據表有著重要的信息。有些字段是保密的,不能讓用戶直接看到。這時就可以創建一個視圖,在這張視圖中只保留一部分字段。這樣,用戶就可以查詢自己需要的字段,不能查看保密的字段。 -
??性能??
關系數據庫的數據常常會分表存儲,使用外鍵建立這些表之間關系。這時,數據庫查詢通常會用到連接(JOIN)。這樣做不但麻煩,效率相對也比較低。如果建立一個視圖,將相關的表和字段組合在一起,就可以避免使用 JOIN 查詢數據(通過視圖預先封裝多表JOIN操作)??。 -
??靈活??
如果系統中有一張舊的表,這張表由于設計的問題,即將被廢棄。然而,很多應用都是基于這張表,不易修改。這時就可以建立一張視圖,視圖中的數據直接映射到新建的表。這樣,就可以少做很多改動,也達到了升級數據表的目的。