一、mysql命令的分類
mysql命令可分為用戶端命令和伺服器端命令兩類:
1)用戶端命令
\c:提前終止結束語句
\g:無論語句結束符是什麼,直接將此語句送至伺服器端執行;
\G:無論語句結束符是什麼,直接將此句送到伺服器端執行,而且結果以豎排方式顯示;
\! COMMAND:執行shell命令
\W:語句執行結束後顯示警告資訊;
\#:對建立的對象,支援補全功能;
\r:重新串連到伺服器上來
補充:mysql用戶端命令裡提到的還有 mysqldump(備份工具), mysqlimport(匯入工具),mysqlcheck
2)伺服器端命令:
mysqld
mysql_multi: 支援多執行個體的
mysql_safe: 支援安全線程的
mysqlbinlog: 查看mysql的二進位工具
mysqlhotcopy:mysql的備份工具
伺服器語句有語句結束符,預設為分號
\d: 定義語句結束符delimiter定義語句結束符)
//:語句結束符
eg:show database // 若想換回來使用\d
所有伺服器語句只有執行用戶端才能進行,而用戶端不需要語句結束符;
伺服器端命令如何擷取協助?
help COMMAND :擷取協助資訊
help command index:擷取索引協助資訊 要想獲得進一步的協助資訊,可以把執行help command index後顯示的URL後的連結複製下來貼到瀏覽器內還能擷取到官方文檔)
二、mysqladmin命令的使用:
1)簡介:mysqladmin用來執行管理命令的專用命令,也是一個用戶端命令,通過用戶端串連到伺服器端去管理命令,mysqladmin很獨特,它是一個具有許多子命令的命令
2)用法: mysqladmin [option] command [arg] [command [arg]]...
mysqladmin -uroot -p password 'NEW_PASS' 為使用者設定密碼的
3)常用命令:
processlist 進程列表,可以列出伺服器上正在執行所有進程列表
status 查看mysql的狀態
--sleep N: 顯示頻率
--count N:顯示多個狀態
eg:mysqladmin status --sleep 2 mysql兩秒鐘顯示一次
eg:mysqladmin status --sleep 2 --count 2 mysql兩秒鐘顯示1次顯示2次
extended-status :顯示狀態變數
varitables: 顯示伺服器變數
flush-privileges: 讓mysqld重讀授權表,等同於reload;
flush-status:重設大多數的伺服器的狀態變數
flush-tables;關閉開啟的所有的表
flush-threads: 重設線程池的,或線程緩衝
flush-logs: 二進位和中繼日誌滾動
flush-hosts: 重新整理主機,清除主機的內部資訊
kill :殺死一個線程的
refresh: 相當於同時執行flush-hosts和flush-logs同時執行
shutdown: 關閉mysql伺服器處理序,可停止mysql伺服器
version: 伺服器版本及目前狀態資訊
start-slave:啟動複製,啟動從伺服器複製線程(複製的線程包括兩個SQL thread和IO thread)
stop-slave:關閉複製,停止複製線程;
三、儲存引擎
1)儲存引擎的概念:儲存引擎從某種意義上講叫表類型,每一個表都可以自由的獨立的選擇一種儲存引擎,儲存引擎不是資料庫之間的概念而是表之間的的概念,同一個資料庫中的多張表完全可以使用不同的儲存引擎,也就意味著底層的儲存機制是各不相同的。
2)儲存引擎主要包括MyISAM和InnoDB
MyISAM:(儲存引擎,也被稱為表類型)無事務,表鎖;每個表三個檔案分別如下:
.form:表結構定義檔案
.MYD:表資料定義檔案
.MYI:表索引定義檔案
InnoDB:事務,行鎖;所有表共用一個資料表空間檔案(建議:每表一個獨立的資料表空間檔案;)
.form: 表結構
.ibd: 資料表空間裡面儲存了表資料和表索引)
3)show engines:可以顯示當前伺服器所支援的所有引擎,
show table status [like ...] 顯示一張表的狀態資訊
eg:show table status like 'use'; 顯示use表的狀態資訊
eg:show table status like 'use'\G 查看use表的屬性資訊,並豎排顯示
四、mysql的資料類型(MySqL data types )相關的知識點
1、mysql的資料類型:
1)數值型
精確數值
int
decimal 十進位
近似數值
float
double
real 實數
2)字元型
定長:char(#)、binary
變長:varchar(#)、varbinary
text,blob大字元,text不區分大小寫,blob區分大小寫)
enum,set 內建類型)
3)日期時間型
data,time,datatime,timestamp
2、資料類型的意義:
1)存入的實值型別
2)佔據的儲存空間
3)定長和變長
4)如何比較及排序
5)是否能夠建立索引
2、數實值型別:
int 整型
tinyint 微整型) 有符號時是0-255,無符號時是-128-127
smallint 小整型)
mediumint中整型)
int 整型)
bigint 大整型)
decimal:定點數值
float:單精確度浮點值 4bytes
double:雙精確度浮點值 8bytes
bit:按位儲存
3、字串資料型別:
char 字元型最多隻能儲存255個字元 定長
varchar 最大隻能儲存65535個字元 變長不區分字元大小寫)
binary 定長
varbinary 變長 (區分字元大小寫)
tinyblob 微型blob 255位元組二進位的大對象,它們是位元組字串區分字元大小寫)
blob 標準blob 64kb
mediumblob 中級blob 16Mb
longblob 長blob 4Gb
tinytext 微型text不區分字元大小寫)最多隻能儲存255個字元
text 標準text 最多隻能儲存65535個字元
mediumtext 中級text 最多隻能儲存16777215個字元
longtext 長text 最多隻能儲存4294967235個字元
enum 枚舉型 最多隻能儲存65535
set 集合 1-64
4、日期時間型:
data 3 bytes
time 3 bytes
datatime 8 bytes
timestamp 4 bytes
year 1 bytes
5、字串類型的修飾手段:
not null 不允許為空白
null 可以為空白
default 指定預設值
binary 不區分字元大小
show characher sets; 顯示當前字元型資料庫字元集
show collation; 顯示當前字元型資料庫所支援的定序
show global varables like '%char%';
select database(); 表示執行一個函數(一個內建的函數)
select last_insert_id();
auto_increment 自動成長(整型 非空 無符號)
eg: create table test(id int unsigned auto_increment not null primary key,Name char(20))
unsigned 無符號
cerate table test(id int unsigned
補充:
1、mysql還有一個特點就是支援名稱補全
名稱補全:開啟資料庫時必須將每一個資料庫的名稱和每一個表的名稱每一個欄位的名稱都要載入記憶體當中來,這可能會導致我們在串連到mysql上時有大量的延遲,因為它必需要遍曆每一個資料庫的每一個表的定義,這是非常慢的。
--html :可以讓資料庫顯示為html格式
2、鍵和索引
1)鍵也被稱為是約束,可用作索引,屬於特殊索引有特殊限定,比如數值不相同):它們儲存下來都是B+Tree的結構。
2)索引是關聯式資料庫的內部實現技術,屬於內模式的範疇 ,create index語句定義索引時,可以定義索引是唯一索引、非唯一索引或聚簇索引
3)索引有兩種類型:
b+tree:具有動態平衡的優點
hash:具有尋找速度快的特點
幾乎所有的欄位都支援b+tree索引,但並非所有的欄位都支援hash索引。
4)建立索引的原則:
1)對較大的表才建立索引約5000條記錄以上),並檢索的資料少於總行數的2%到4%
2)一個表可建立任意多個索引,但不能太多,會增加系統維護的開銷,索引建立後由系統維護。
3)經常出現在where子句或聯結條件中的列上作為索引關鍵字
4)索引關鍵字可以是一個列,也可以是多個列組合成的複合索引。如果是複合索引,則查詢條件中含有主關鍵字時,系統使用索引,加快查詢速度。如果查詢條件中只含有次關鍵字,則系統不使用索引。
5)索引資訊會儲存到資料字典中。
本文出自 “show_only” 部落格,請務必保留此出處http://10240214.blog.51cto.com/6634068/1195438