校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁 > 知識庫 > mysql索引原理與用法實例分析

mysql索引原理與用法實例分析

熱門標簽:鄭州網絡外呼系統價錢 怎么更改高德地圖標注 博樂電銷機器人 電話機器人是電腦呼號嗎 機器人打電銷電話 400電話到哪辦理優惠 南寧外呼系統招商 云南大數據外呼系統 上海市三維地圖標注

本文實例講述了mysql索引原理與用法。分享給大家供大家參考,具體如下:

本文內容:

  • 什么是索引
  • 創建索引
    • 普通索引
    • 唯一索引
    • 全文索引
    • 單列索引
    • 多列索引
  • 查看索引
  • 刪除索引

首發日期:2018-04-14


什么是索引:

  • 索引可以幫助快速查找數據
  • 基本上索引都要求唯一(有些不是),所以某種程度上也約束了數據的唯一性。
  • 索引創建在數據表對象上,由一個或多個字段組成,這若干個字段組成“鍵”存儲到數據結構中(B樹或者哈希表)。【可以根據數據結構分類成B樹索引(innodb\myisam引擎),哈希索引(memory引擎)】
  • 由于索引是加快數據查找的,所以一般都使用在經常需要用來查找的字段上(比如where中常用字段)
  • mysql支持的索引類型有:普通索引、唯一索引、全文索引、單列索引、多列索引、空間索引。

補充:

  • 主鍵與索引的區別:主鍵也是一種索引,主鍵也是一種唯一索引,但索引的作用主要是提高查找速度,而主鍵作用主要是標識記錄唯一性(當然也便于查找)。

創建索引:

普通索引:index

  • 普通索引就是沒有“唯一”,“不為空”要求的索引。
  • 語法:
    • create table 表名(字段 數據類型,字段 數據類型,…index|key [索引名] (字段  [索引的長度] [asc|desc]));
      • index|key代表可以使用index關鍵字或key關鍵字
      • 索引名是可選的,不填時索引名為字段名
      • 字段是加索引的字段,字段可以有多個(多列索引)。
      • 索引的長度,可選的(有些引擎設置了最大長度,一般不深入學習應該很少遇到,這里不講述)
      • asc|desc是可選的,代表索引中的“關鍵字”的排序
    • 在現有表結構的情況下增加索引:create index 索引名 on 表名 (字段  [索引的長度] [asc|desc]);
    • 在現有表結構的情況下增加索引:alter table 表名 add index|key 索引名(字段  [索引的長度] [asc|desc]);

唯一索引:

  • 唯一索引,就是創建索引時,要求字段的數據是唯一的。
  • 創建語法:
    • create table 表名(字段 數據類型,字段 數據類型,… unique index|key [索引名] (字段  [索引的長度] [asc|desc]));
      • 【參數信息參考普通索引的】
    • 在現有表結構的情況下增加索引:create unique index 索引名 on 表名 (字段  [索引的長度] [asc|desc]);
    • 在現有表結構的情況下增加索引:alter table 表名 add unqiue index|key 索引名(字段  [索引的長度] [asc|desc]);

全文索引:fulltext index

  • 全文索引一般使用在數據類型為char,varchar和text的字段上,方便查找這些比較長的數據。
  • myisam存儲引擎支持全文索引
  • 創建語法:
    • create table 表名(字段 數據類型,字段 數據類型,… fulltext index|key [索引名] (字段  [索引的長度] [asc|desc]));
      • 【參數信息參考普通索引的】
    • 在現有表結構的情況下增加索引:create fulltext index 索引名 on 表名 (字段  [索引的長度] [asc|desc]);
    • 在現有表結構的情況下增加索引:alter table 表名 add fulltext index|key 索引名(字段  [索引的長度] [asc|desc]);

單列索引:

  • 上面的加索引字段為一個時,為單列索引

多列索引:

  • 加索引的字段為多個時,為多列索引
  • 創建語法:只需要將上面的(字段  [索引的長度] [asc|desc])變成(字段1  [索引的長度] [asc|desc],字段2  [索引的長度] [asc|desc],字段1  [索引的長度] [asc|desc])即可。

查看索引:

  • 可以通過查看表結構查看索引
  • 可以通過查看表創建語句查看索引
  • 可以使用explain語句查看索引,explain是用來判斷mysql語句執行的時間效率的。
    • 所以可以使用explain select語句 where 加上索引的字段作為條件;
    • 結果中的possible_key是可能使用到的索引,key實際使用到的索引。
    • 比如:
      explain select * from user_info where username="lilei";

刪除索引:

  • drop index 索引名 on 表名;
    • 比如:
      drop index myindex on user_info;

更多關于MySQL相關內容感興趣的讀者可查看本站專題:《MySQL索引操作技巧匯總》、《MySQL常用函數大匯總》、《MySQL日志操作技巧大全》、《MySQL事務操作技巧匯總》、《MySQL存儲過程技巧大全》及《MySQL數據庫鎖相關技巧匯總》

希望本文所述對大家MySQL數據庫計有所幫助。

您可能感興趣的文章:
  • MySQL組合索引與最左匹配原則詳解
  • 深入了解mysql索引
  • 快速了解MySQL 索引
  • 一篇文章掌握MySQL的索引查詢優化技巧
  • MySQL 索引知識匯總
  • Mysql索引類型與基本用法實例分析
  • Mysql之組合索引方法詳解

標簽:白銀 益陽 定西 恩施 澳門 秦皇島 杭州 寧夏

巨人網絡通訊聲明:本文標題《mysql索引原理與用法實例分析》,本文關鍵詞  mysql,索引,原理,與,用法,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《mysql索引原理與用法實例分析》相關的同類信息!
  • 本頁收集關于mysql索引原理與用法實例分析的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 苗栗县| 济南市| 博白县| 喀喇沁旗| 兴义市| 新干县| 炉霍县| 平罗县| 上栗县| 桃园市| 彰化市| 特克斯县| 会东县| 城市| 明光市| 金华市| 科技| 方正县| 黄冈市| 陆良县| 万荣县| 仙桃市| 固镇县| 泾川县| 洛扎县| 台北市| 阿合奇县| 金门县| 彭州市| 宁明县| 邓州市| 特克斯县| 涡阳县| 昌邑市| 乌鲁木齐县| 海安县| 陆河县| 江孜县| 合作市| 观塘区| 洛川县|