MYSQL理論

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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章