標籤:mysql
索引:是一種按照特定儲存格式儲存的特殊資料,用於SQL查詢索引的類型: 叢集索引和非叢集索引:資料是否和索引儲存在一起 主鍵索引和輔助索引:索引是否在主鍵之上 左首碼索引和覆蓋索引:是否只截取左邊的前幾個位元組最為索引,mysql預設使用左首碼索引左首碼索引的儲存: 在指定索引的欄位中截取左邊的前幾個位元組產生索引,並對索引進行排序處理,將排完序的索引進行分組管理 並產生來源資料,當使用者以索引欄位作為查詢條件時,mysql去掃描中繼資料,並定位到中繼資料對應資料的上索引管理: CREATE INDEX 索引名 ON 表名 (欄位名);#建立索引 SHOW INDEX FROM 表名;#查看指定表的索引 DROP INDEX 索引名 ON 表名;#刪除索引 注意:索引沒必要修改,因為沒有意義樣本: USE mysql;#使用mysql庫 CREATE INDEX test_index ON user (User);#在user表的User欄位索引 SHOW INDEX FROM user;#查看索引是否建立成功 EXPLAIN SELECT * FROM user WHERE User=‘root‘\G; #使用EXPLAIN查看命令的執行過程(不會真正的去執行)#使用索引的查詢過程 id: 1#編號 select_type: SIMPLE#查詢類型 SIMPLE:表示簡單查詢 table: user#查詢關聯到的表 type: ref #訪問類型 possible_keys: test_index#可能會用到的索引 key: test_index#最終用到的索引key_len: 48#在索引中使用的位元組數 ref: const#一對一查詢 rows: 3#為找到目標行而讀取的行 Extra: Using where#額外資訊 常見訪問類型:ALL:全表掃描 index:根據索引進行全表掃描 range:範圍掃描 ref:更具索引返回表中匹配的值所在的行 const/system:直接返回單行(一般基於主鍵查詢)#沒有使用索引的查詢過程 id: 1 select_type: SIMPLE table: user type: ALL#全表掃描查詢 possible_keys: NULL key: NULL key_len: NULL ref: NULL rows: 6 Extra: Using where視圖管理: 視圖也叫虛表,是由select語句產生,mysql的視圖較為不穩定,不建議使用 CREATE VIEW 視圖名 AS select語句#建立視圖 DROP VIEW 視圖名 #刪除視圖樣本: CREATE DATABASE mydb; #建立測試資料庫 USE mydb; #使用測試資料庫 CREATE VIEW test_view AS SELECT User,Host,Password FROM mysql.user;#建立視圖 SELECT * FROM test_view; #查看視圖內容 SHOW TABLE STATUS LIKE ‘test_view‘\G; #查看檢視狀態 Name: test_view Engine: NULL Version: NULL Row_format: NULL Rows: NULL Avg_row_length: NULL Data_length: NULL Max_data_length: NULL Index_length: NULL Data_free: NULL Auto_increment: NULL Create_time: NULL Update_time: NULL Check_time: NULL Collation: NULL Checksum: NULL Create_options: NULL Comment: VIEW注意:視圖的修改其實是修改基表的資料(慎用)
本文出自 “自動化營運” 部落格,請務必保留此出處http://hongchen99.blog.51cto.com/12534281/1934020
mysql基礎(九) 索引和視圖