文章詳情頁
mysql索引原理與用法實例分析
瀏覽:33日期:2023-10-15 14:57:48
本文實例講述了mysql索引原理與用法。分享給大家供大家參考,具體如下:
本文內容: 什么是索引 創(chuàng)建索引 普通索引 唯一索引 全文索引 單列索引 多列索引 查看索引 刪除索引首發(fā)日期:2018-04-14
什么是索引: 索引可以幫助快速查找數(shù)據(jù) 而基本上索引都要求唯一(有些不是),所以某種程度上也約束了數(shù)據(jù)的唯一性。 索引創(chuàng)建在數(shù)據(jù)表對象上,由一個或多個字段組成,這若干個字段組成“鍵”存儲到數(shù)據(jù)結構中(B樹或者哈希表)。【可以根據(jù)數(shù)據(jù)結構分類成B樹索引(innodbmyisam引擎),哈希索引(memory引擎)】 由于索引是加快數(shù)據(jù)查找的,所以一般都使用在經(jīng)常需要用來查找的字段上(比如where中常用字段) mysql支持的索引類型有:普通索引、唯一索引、全文索引、單列索引、多列索引、空間索引。補充: 主鍵與索引的區(qū)別:主鍵也是一種索引,主鍵也是一種唯一索引,但索引的作用主要是提高查找速度,而主鍵作用主要是標識記錄唯一性(當然也便于查找)。創(chuàng)建索引:普通索引:index 普通索引就是沒有“唯一”,“不為空”要求的索引。 語法: create table 表名(字段 數(shù)據(jù)類型,字段 數(shù)據(jù)類型,…index|key [索引名] (字段 [索引的長度] [asc|desc])); index|key代表可以使用index關鍵字或key關鍵字 索引名是可選的,不填時索引名為字段名 字段是加索引的字段,字段可以有多個(多列索引)。 索引的長度,可選的(有些引擎設置了最大長度,一般不深入學習應該很少遇到,這里不講述) asc|desc是可選的,代表索引中的“關鍵字”的排序 在現(xiàn)有表結構的情況下增加索引:create index 索引名 on 表名 (字段 [索引的長度] [asc|desc]); 在現(xiàn)有表結構的情況下增加索引:alter table 表名 add index|key 索引名(字段 [索引的長度] [asc|desc]); 唯一索引: 唯一索引,就是創(chuàng)建索引時,要求字段的數(shù)據(jù)是唯一的。 創(chuàng)建語法: create table 表名(字段 數(shù)據(jù)類型,字段 數(shù)據(jù)類型,… unique index|key [索引名] (字段 [索引的長度] [asc|desc])); 【參數(shù)信息參考普通索引的】 在現(xiàn)有表結構的情況下增加索引:create unique index 索引名 on 表名 (字段 [索引的長度] [asc|desc]); 在現(xiàn)有表結構的情況下增加索引:alter table 表名 add unqiue index|key 索引名(字段 [索引的長度] [asc|desc]); 全文索引:fulltext index 全文索引一般使用在數(shù)據(jù)類型為char,varchar和text的字段上,方便查找這些比較長的數(shù)據(jù)。 myisam存儲引擎支持全文索引 創(chuàng)建語法: create table 表名(字段 數(shù)據(jù)類型,字段 數(shù)據(jù)類型,… fulltext index|key [索引名] (字段 [索引的長度] [asc|desc])); 【參數(shù)信息參考普通索引的】 在現(xiàn)有表結構的情況下增加索引:create fulltext index 索引名 on 表名 (字段 [索引的長度] [asc|desc]); 在現(xiàn)有表結構的情況下增加索引:alter table 表名 add fulltext index|key 索引名(字段 [索引的長度] [asc|desc]); 單列索引: 上面的加索引字段為一個時,為單列索引多列索引: 加索引的字段為多個時,為多列索引 創(chuàng)建語法:只需要將上面的(字段 [索引的長度] [asc|desc])變成(字段1 [索引的長度] [asc|desc],字段2 [索引的長度] [asc|desc],字段1 [索引的長度] [asc|desc])即可。查看索引: 可以通過查看表結構查看索引

explain select * from user_info where username='lilei'; 刪除索引: drop index 索引名 on 表名; 比如:
drop index myindex on user_info;
更多關于MySQL相關內容感興趣的讀者可查看本站專題:《MySQL索引操作技巧匯總》、《MySQL常用函數(shù)大匯總》、《MySQL日志操作技巧大全》、《MySQL事務操作技巧匯總》、《MySQL存儲過程技巧大全》及《MySQL數(shù)據(jù)庫鎖相關技巧匯總》
希望本文所述對大家MySQL數(shù)據(jù)庫計有所幫助。
標簽:
MySQL
數(shù)據(jù)庫
相關文章:
1. Access數(shù)據(jù)庫安全的幾個問題2. 簡單了解mysql語句書寫和執(zhí)行順序3. 數(shù)據(jù)庫Oracle9i的企業(yè)管理器簡介4. Mysql索引常見問題匯總5. MySQL刪除數(shù)據(jù),表文件大小依然沒變的原因6. MybatisPlus自定義Sql實現(xiàn)多表查詢的示例7. 50種方法巧妙優(yōu)化你的SQL Server數(shù)據(jù)庫8. MySQL 8.0新特性 — 管理端口的使用簡介9. 一文詳解嵌入式SQL10. 在redhat 9 上安裝oracle 9.2.0.4 時,DBCA 出錯的解決辦法
排行榜
