MySql數據庫操作:創建數據庫、刪除數據庫和數據庫存儲引擎

聲明:本文內容參考書籍《MySql入門很簡單》

目錄

1 創建數據庫

2 刪除數據庫

3 數據庫存儲引擎

3.1 InnoDB

3.2 MyISAM

3.3 MEMORY

3.4 存儲引擎的選擇


首先數據庫是指長期存儲在計算機內、有組織的和可共享的數據集合。簡而言之,數據庫就是一個存儲數據的地方。只是,其存儲方式有特定的規律。這樣就可以方便的處理數據。數據庫的操作包括創建數據庫和刪除數據庫。這些操作都是數據庫管理的基礎。

同時MySql中提到了存儲引擎的概念。簡而言之,存儲引擎就是指表的類型。數據庫的存儲引擎決定了表在計算機中的存儲方式。

1 創建數據庫

創建數據庫用到的SQL語句爲 CREATE DATABSE,語法形式如下:

CREATE DATABASE 數據庫名;

例如創建一個名爲test的數據庫

如上,創建數據庫之後我們可以用SHOW DATABASES語句來查看當前有哪些數據庫。

2 刪除數據庫

刪除數據庫通過語句DROP DATABASE實現,其語法形式如下:

DROP DATABSASE 數據庫名;

3 數據庫存儲引擎

通過:

SHOW ENGINES \g;

可以查看MySql數據庫支持的存儲引擎。\g和;的含義一樣,只不過會讓顯示更美觀。顯示如下:

其中,Engine是存儲引擎名稱,Support表示表明Mysql是否支持此數據存儲引擎,Comment是對該引擎的評論,Transactions表示此存儲引擎是否支持事務處理,XA表示是否滿足分佈式交易處理的XA規範,Savepoints表示是否支持保存點,以便回滾到保存點。

InnoDB是MySql默認的存儲引擎。接下來將詳細介紹InnoDB、MyISAM和MEMORY存儲引擎。

3.1 InnoDB

InnoDB給MySql的表提供了事務、回滾、崩潰修復能力和多版本併發控制的事務安全。InnoDB是MySql中第一個提供外鍵約束的表引擎。而且InnoDB對事物處理的能立,也是其他存儲引擎無法進行比擬的。

InnoDB支持自動增長列AUTO_INCREMENT。自動增長列的值不能爲空,且值必須是唯一。MySql中規定,自增長的列必須爲主鍵。在插入值時,如果自增長的列不輸入值,則插入的值爲自動增長後的值;如果輸入的值爲0或NULL,則插入的值也爲自動增長後的值;如果插入的是某個確定的值,且這個值在前面沒有出現過,則可以直接插入。

InnoDB支持外鍵。外鍵所在的表爲子表,外鍵所依賴的表爲父表。父表中子表外鍵關聯的字段必須爲主鍵。當刪除、更新父表中的某條信息時,子表也必須有相應的改變。

InnoDB存儲引擎中,創建的表的表結構存儲在.frm文件當中。數據和索引存儲在innodb_data_home和innodb_data_file_path定義的表空間中。

InnoDB存儲引擎的優勢在於提供了良好的事務管理、崩潰修復能立和併發控制。缺點是其讀寫效率較差,佔用的數據空間相對較大。

3.2 MyISAM

MyISAM存儲引擎說MySql中最常見的存儲引擎,曾經室MySql的默認引擎。MyISAM是基於ISAM存儲引擎發展起來的,並對其增加了很多有用的擴展。

MyISAM存儲引擎的表存儲成三個文件。文件的名字與表名相同。擴展名包括frm、MYD和MYI。其中frm爲擴展名的文件存儲表的結構;MYD爲擴展名的文件存儲數據,MYI爲擴展名的文件存儲索引。

基於MyISAM存儲引擎支持三種不同的存儲格式。包括靜態型、動態型和壓縮型。其中,靜態型爲MyISAM的默認存儲格式,其字段是固定長度的;動態型包含變長字段,記錄的長度不是固定的;壓縮型需要使用myisampack工具進行創建,佔用的磁盤空間較小。

MyISAM存儲引擎的優勢在於佔用空間小、處理速度快。缺點是不支持事務的完整性和併發性。

3.3 MEMORY

這是一種特殊的存儲引擎,其使用存儲在內存中的內容來創建表,而且數據也存放在內存當中。這些特性都與前兩個存儲引擎不同。

每個基於MEMORY存儲引擎的表事件對應一個磁盤文件。該文件的文件名與表明相同,類型爲frm類型。該文件中只存儲表的結構,而數據都是文件,都是存在內存當中。這樣有利於數據的快速處理,提高整個表的處理效率。需要注意的是,服務器必須要有足夠的內存來維持MEMORY存儲引擎的表的使用。如果不需要使用了,可以釋放這些內存,甚至可以刪除不需要的表。

MEMEORY存儲引擎默認使用的是hash索引。其速度要比B型樹索引快。

MEMORY的表的大小是受限制的。表的大小主要取決於兩個參數,分別是max_rows和max_help_table_size,max_rows可以在創建表時指定:max_help_table_size的大小默認爲16MB,並且可以按需進行擴大。因此,其存於內存中的特性,這類表的處理速度非常快。但是數據極易丟失。生命週期短,因此選擇這個引擎要特別小心。

3.4 存儲引擎的選擇

在實際工作中,選擇一個合適的存儲引擎是一個非常複雜的問題。每個引擎都有各自的優勢。下面從幾個方面將這三種引擎做了一個比較。

  • InnoDB存儲引擎,支持事務處理,支持外鍵。同時支持崩潰修復能力和併發控制。如果需要對事務的完整性要求比較高,要求實現併發控制那麼就選擇此存儲引擎。如果需要頻繁的進行更新、刪除操作的數據庫,也可以選擇此存儲引擎,因爲該類引擎可以實現事務的提交和回滾。
  • MyISAM存儲引擎的插入數據快,空間和內存使用比較低。如果表主要是用於插入新記錄和讀出記錄,那麼可以選擇MyISAM存儲引擎。如果完整性、併發性要求很低,也可以選擇此引擎。
  • MEMORY存儲引擎的所有數據都存在於內存當中。數據的處理速度快,但是安全性不高。如果需要很快的讀寫速度,對數據的安全性要求低,可以選擇此存儲引擎。同時,因爲此引擎對錶的大小有要求,不能建立太大的表。所以這類數據庫只適用於相對較小的數據庫表。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章