MYSQL常用命令解析
mysql的一些理論知識
主鍵(primary key)
用於唯一地標識表中的每一條記錄 可以定義表中的一列或者多列主鍵。主鍵列上不能有兩行相同的值,也不能爲空值
sql語言
對數據庫進行查詢和修改的語言叫SQL語言,結構化的查詢
ANSI(美國國家標準機構) SQL-92
經過92修改過後99年推出SQL-99
(1)數據定義語言ddl(data definition language):drop create alter等語句(增刪改)
(2)數據操作語言dml(data manipulation language):insert update delete語句(增刪改)
(3)數據查詢語言dql(data query language):select(查詢)
(4)數據控制語言dcl(data control language):grant revoke commit rollback等語句
mysql的優勢
1.開源:免費
2.速度:運行速度快
3.容易使用:和其他大型數據庫相比複雜程度較低,方便學習
4.可移植性:能在不同平臺進行工作,比如window Linux unix
5.接口豐富:c,c++,python,php,ruby,java都有相應的api接口
6.支持查詢語言;MySQL可以利用標準sql語法支持ODBC的應用程序
7.安全性和連續性:十分靈活的權限和密碼系統,允許基於主機的驗證。鏈接到服務器時,所有的密碼採用加密形式,保證密碼安全。且可以在任何有網絡的地方直接通過賬戶密碼訪問數據庫,提高數據共享效率。
mysql的幾個實用端
MySQL後臺程序:
mysqld:mysql啓動程序
mysqld_safe:unix下啓動mysql的啓動腳本
mysql_multi:啓動關閉腳本可以開啓和關閉多臺MySQL服務器
myisamchk:用來檢查,維護和優化Myisam表的工具
mysqlbug:mysql的缺陷報告腳本
mysql.server 服務器啓動腳本,用於使用特定級別的,運行啓動服務的腳本,運行目錄的系統。掉喲個mysqld_safe啓動MySQL服務器
mysql_install_db:用於給MySQL進行初始化,通常在首次安裝MySQL使用,用於設置日誌等配置文件的存放位置
myisampack:壓縮myisam表產生更小的只讀表的工具
mysql:交互式輸入sql語句或者從文件以批處理的方式執行文件的命令行工具
mysqlaccess:檢測訪問的主機名用戶名數據庫組合權限 檢測權限的腳本
mysqladmin:更改我們MySQL的密碼,執行各類管理操作,刪除創建數據庫,重載授權表,刷新日誌,檢索版本號,進程號以及服務器狀態。
mysqlbinlog:查看二進制日誌,可以用日誌來恢復數據庫數據
mysqlcheck:用於檢查修復分析以及優化表的客戶端程序
musqldump:將我們的數據庫備份到指定的目錄當中
mysqlhotcopy:當我們的MySQL處於運行過程中快速備份myisam表的工具
mysqlshow:顯示數據庫,表,列以及索引等相關信息的客戶端程序
perror:顯示系統錯誤代碼含義的工具
MySQL中各個默認數據庫
information schema : 信息數據庫 儲存關於MySQL服務器所維護的所有其他的數據庫的信息。
mysql : 存放數據庫的用戶,權限設置,關鍵字等mysql自己需要使用的控制和管理信息。
performance_schema : 主要用於收集數據庫服務器性能 只在5.5版本之後纔有
數據庫存儲引擎
數據庫存儲引擎屬於數據庫底層軟件組件,數據庫管理系統使用數據引擎進行創建。查詢,更新和刪除數據的操作。
innodb:
(1)事務性數據庫首選引擎,支持行級別鎖定和外鍵,使用事務安全模式創建表。且爲mysql5.5版本之後默認存儲引擎
(2)具有對事務的提交,回滾,崩潰能力的事務安全存儲引擎,可以處理巨大的數據量,性能效率高。支持外鍵
(3)具有非常高效的緩存性能,能緩存索引也能緩存數據,對硬件要求較高。
(4)使用innodb時,將在mysql目錄下創建一個名字較ibdatal的10MB自動擴展文件,以及兩個名爲ib_logfile0和ib_logfile1的5MB大小的日誌文件。
innodb使用場景
(1)使用事務時選取innodb,高併發時使用innodb
(2)數據更新較爲頻繁的場景 比如微博。
(3)數據一致性要求較高的業務,比如轉賬。
memory:
(1)memory存儲引擎將數據存儲到內存中,提供快速訪問
(2)支持hash和btree索引,不支持blob和text列,支持auto_increment列和對可包含null值的列的索引
(3)不使用memory表時,直接刪除表或者清空表數據可以釋放空間。
myisam:
(1)myisam讀取速度較快,佔用資源相對較少,不支持事務,不支持外鍵,支持全文索引.空間索引
(2)myisam讀寫互相阻塞
(3)myisam只能緩存索引,不能緩存數據。
myisam使用場景
(1)不需要事務的業務
(2)適用於讀取較多的業務,不適用與寫數據較多的業務
(3)併發較低、數據修改少的業務
(4)硬盤資源較差可以選擇適用myisam
查看所有的引擎的語法:show engines\G (\G是用於把結果更簡潔更直觀的顯示出來)
transactions:當前存儲引擎是否支持事務
XA:是否支持分佈式
savepoints:是否支持保存點
show variables like ‘storage_engine’;查看默認的存儲引擎
不同的存儲引擎功能不同,佔用的空間不同,讀取的性能不同
–(2)–
功能 | myisam | memory | innodb |
---|---|---|---|
存儲限制 | 256TB | RAM | 64TB |
支持事務 | NO | NO | YES |
支持全文索引 | YES | NO | NO |
支持數索引 | YES | YES | YES |
支持哈希索引 | NO | YES | YES |
支持數據緩存 | NO | NO | YES |
支持外鍵 | NO | NO | YES |