MYSQL學習筆記三——資料庫的基本操作
1. 建立資料庫
MySQL安裝完成後,會在其data目錄下建立幾個必需的資料庫,可以用“show databases;”檢視當前存在的所有資料庫。
1.1建立資料庫是在系統磁碟上劃分一塊區域用於資料的儲存和管理。
1.2MySQL中建立資料庫的基本SQL語法:createdatabase name;name代表你想建立資料庫的名字。也可以用“show create database name;”檢視資料庫建立資訊。
2.刪除資料庫
刪除資料庫是將已經存在的資料庫從磁碟空間上清除,清除之後,資料庫中的所有資料也將一同被刪除。
2.1刪除的語法格式:“drop database name;”name為想刪除資料庫的名稱。資料庫被刪除後,再檢視資料庫建立資訊(show create database name),是會報錯的,因為資料庫已經不存在。
3.資料庫儲存引擎
資料庫儲存引擎是資料庫底層軟體元件,資料庫管理系統(DBMS)使用資料引擎進行建立、查詢、更新和刪除資料庫操作。不同儲存引擎提供不同的儲存機制、索引技巧、鎖定水平。MySQL的核心就是儲存引擎,主要包括處理事務安全表的引擎和處理非事務安全表的引擎。
MySQL支援引擎主要有InnoDB、MyISAM、Memory、Merge、Archive、Federated、CSV、Blackhole等。
3.1InnoDB儲存引擎
InnoDB是事務型資料庫的首選引擎,支援事務安全表(ACID),支援行鎖定和外來鍵。5.5以後的預設儲存引擎,以前是MyISAM
3.1.1InnoDB給MySQL提供裡具有提交、回滾、崩潰恢復能力的事務安全(ACID)儲存引擎。InnoDB鎖定在行級並且也在select語句中提供裡一個類似Oracle的非鎖定讀。
3.1.2InnoDB是為處理巨大資料量的最大設計,它的CPU效率可能是任何其他基於磁碟關係資料庫引擎所不能匹敵的。
3.1.3InnoDB儲存引擎完全與MySQL伺服器整合,InnoDB儲存引擎為在主記憶體中快取資料和索引而維持它自己的快取池。InnoDB將它的表和索引存在一個邏輯表空間,和MyISAM是不同的,InnoDB的表是任何尺寸的。
3.1.4InnoDB支援完整的外來鍵完整性約束,每張表都會按住鍵順序存放,如果沒有顯示定義主鍵,InnoDB會為每一行生成一個6B的rowid,並以此為主鍵。
3.1.5被用在需要高效能的大型資料庫站點上。
3.2MyISAM儲存引擎
MyISAM擁有較高的插入、查詢速度,但不支援事務。在MySQL5.5以前,它是預設儲存引擎。
3.3Memory儲存引擎
將表中的資料儲存到記憶體中,為查詢和引用其他表資料提供快速訪問。
當不在需要memory表的內容時,要釋放被memory表使用的的記憶體,應該執行delete from或者truncate table或者刪除整個表drop table。
3.4儲存引擎的選擇
功能 |
MyISAM |
Memory |
InnoDB |
Archive |
儲存限制 |
256T |
RAM |
64T |
None |
支援事務 |
Y |
|||
支援全文索引 |
Y |
|||
支援數索引 |
Y |
Y |
Y |
|
支援雜湊索引 |
Y |
|||
支援資料儲存 |
N/A |
Y |
||
支援外來鍵 |
Y |
如果要提交、回滾和崩潰恢復能力的事務安全,並要求實現併發控制,InnoDB是一個選擇。
如果用來插入和查詢資料,則MyISAM提供較高的處理效率。
如果臨時存放資料,資料量不大,可選擇memory引擎
如果只有insert和select操作,可以選擇archive引擎,支援高併發插入,但是不安全,適合儲存歸檔資料,特別是日誌資訊。
可以利用“show variables like ‘storage_engine’”查詢預設的儲存引擎,如果不可以,也可以這樣輸入"show variables like '%storage_engine%'"。
注意:mysql中命令大小寫基本通用,但是\g表示命令結束與;效果等同,但是\G表示旋轉90度的顯示,主要體現在顯示效果上。