mysql基础(九) 索引和视图
生活随笔
收集整理的這篇文章主要介紹了
mysql基础(九) 索引和视图
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 | 索引:是一種按照特定存儲格式存儲的特殊數據,用于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 ????? ????注意:視圖的修改其實是修改基表的數據(慎用)? ????? ????? ???? |
本文轉自 ?紅塵世間 ?51CTO博客,原文鏈接:http://blog.51cto.com/hongchen99/1934020
總結
以上是生活随笔為你收集整理的mysql基础(九) 索引和视图的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 在配置文件(.settings、.con
- 下一篇: appium-java长按学习