欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

MySQL索引管理的使用解讀

 更新時間:2025年05月17日 10:16:12   作者:一寫就錯  
這篇文章主要介紹了MySQL索引管理的使用,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

常見的索引

(1)PRIMARY:主鍵索引,索引列值唯一且不能為空;一張表只能有一個主鍵索引。

(2)INDEX:普通索引,索引列沒有任何限制。

(3)UNIQUE:唯一索引,索引列的值必須是唯一的,但允許有空值。

(4)FULLTEXT:全文索引,只有MyISAM存儲引擎支持。

(5)SPATIAL:空間索引,對空間數(shù)據(jù)類型的字段建立的索引。

索引的建立與查看

1. 創(chuàng)建數(shù)據(jù)表的同時建立索引

在 CREATE TABLE 語句中添加一下的語句來實現(xiàn)在創(chuàng)建數(shù)據(jù)表的同時建立索引。

create table 表名 (
字段1 數(shù)據(jù)類型 字段屬性,
字段2 數(shù)據(jù)類型 字段屬性,
     ...
索引類型 index 索引名 (字段名)
);

例如在student表中,在字段sname上創(chuàng)建普通索引index_sname;

在字段dept字段和sex字段上創(chuàng)建聯(lián)合索引index_dept_sex;

在remarks字段上創(chuàng)建全文索引ft_remarks。

create table student(
sno char(6) primary key comment '學(xué)號',
sname varchar(20) not null comment '姓名',
dept varchar(20) comment '專業(yè)',
sex char(1) comment '性別',
birthday date comment '出生日期',
totalcredit decimal(4,1) default 0 comment '總學(xué)分',
remarks varchar(100)  comment '備注',
-- 在sname字段上創(chuàng)建普通索引
index index_sname (sname) ,
-- 在dept字段和sex字段上創(chuàng)建聯(lián)合索引
 index index_dept_sex (dept,sex),
-- 在remarks字段上創(chuàng)建全文索引
fulltext index ft_remarks (remarks)
) engine = MyISAM;

2. 創(chuàng)建數(shù)據(jù)表后添加索引

可以使用 CREATE INDEX 語句在一個已有的數(shù)據(jù)表上添加索引

CREATE INDEX 索引名稱 ON 數(shù)據(jù)表名 (列名)

例如在course表cname字段上創(chuàng)建普通索引index_cname。

create index index_cname on course(cname);

在course表cname字段上創(chuàng)建前綴索引索引pf_cname。

create index index_cname on course(cname(4));

3. 使用ALTER TABLE語句建立索引

通過ALTER TABLE 語句直接為已有的數(shù)據(jù)表建立索引

ALTER TABLE 數(shù)據(jù)表名 ADD 索引類型 INDEX 索引名稱(類名)。

例如在score表的sno字段和cno字段上創(chuàng)建聯(lián)合唯一索引。

alter table score add unique index index_sno_cno (sno,cno);

4. 查看數(shù)據(jù)表上的引用

通過SHOW INDEX語句來查看索引.

SHOW INDEX FROM 數(shù)據(jù)表名

例如顯示course表的索引信息。

show index from course;

course 表的索引信息:

參考說明:

  • Non_unqiue:索引字段值是否可以重復(fù),0表示不可以,1表示可以。
  • key_name:索引的名字,如果索引是主鍵索引,則它的名字為PRIMARY。
  • Seq_in_index:建立索引的字段序號值,聯(lián)合索引第一個字段為1,第二個字段為2。
  • Column_name:建立索引的字段。
  • Collation:索引字段是否有序,A表示有序,NULL表示沒有排序。
  • Cardinality:計算連接時使用索引的可能性,值越大,可能性越高。
  • Sub_part:前綴索引的長度,如4,無前綴則為NULL。
  • Index_type:索引類型,可選值有BTREE、FULLTEXT、HASH、RTREE。

查看索引的使用情況

使用EXPLAIN關(guān)鍵字查看SQL語句中執(zhí)行索引的使用情況。

例如查看student表中的索引使用信息

explain select * from student where sname like '王%';

查看student表中的全文索引使用信息

explain select * from student where match (remarks) against ('三好學(xué)生');

參考說明:

  • id: 查詢標(biāo)識符,默認(rèn)從1開始,若使用了聯(lián)合查詢,則該值依次遞增,聯(lián)合查詢結(jié)果對應(yīng)的該值為NULL。
  • select_type: 操作類型,如DELETE、UPDATE等,擔(dān)當(dāng)執(zhí)行SELECT語句時,它的值有多種,例如,SIMPLE表示不需聯(lián)合查詢或簡單的子查詢。
  • table: 查詢表的名字。
  • partitions: 匹配的分區(qū)。
  • type: 取值可為system,const、eq_ref、ref、fulltext等。
  • key: 查詢使用到的索引。
  • ref: 表示哪些字段或常量與索引進(jìn)行比較,例如,const表示常量與索引進(jìn)行了比較。
  • rows: 預(yù)計需要檢索的記錄數(shù)。
  • filtered: 按條件過濾的百分比。
  • Extral: 附加信息,例如,USing index 表示使用了索引覆蓋。

索引的刪除

1. 使用ALTER TABLE 語句刪除索引

ALTER TABLE 表名 DROP INDEX 索引名;

例如刪除student表中的index_sname索引。

alter table student drop index index_sname ;

2. 使用DROP INDEX 語句刪除索引

DROP INDEX 索引名 ON 表名;

例如刪除score表中的index_sno_cno索引。

drop index index_sno_cno on score;

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • linux下源碼安裝mysql5.6.20教程

    linux下源碼安裝mysql5.6.20教程

    這篇文章主要為大家詳細(xì)介紹了linux下源碼安裝mysql5.6.20教程的相關(guān)資料,文中安裝步驟介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-01-01
  • MySQL中隨機生成固定長度字符串的方法

    MySQL中隨機生成固定長度字符串的方法

    在MySQL中有時需要隨機生成數(shù)字或字符串,隨機生產(chǎn)數(shù)字可直接使用rand()函數(shù),但是要隨機生成字符串就比較麻煩。
    2010-12-12
  • MySQL DDL 引發(fā)的同步延遲該如何解決

    MySQL DDL 引發(fā)的同步延遲該如何解決

    這篇文章主要介紹了MySQL DDL 引發(fā)的同步延遲該如何解決,幫助大家更好的理解和學(xué)習(xí)使用MySQL數(shù)據(jù)庫,感興趣的朋友可以了解下
    2021-05-05
  • 快速理解MySQL中主鍵與外鍵的實例教程

    快速理解MySQL中主鍵與外鍵的實例教程

    這篇文章主要介紹了MySQL中主鍵與外鍵的區(qū)別和聯(lián)系,是MySQL入門學(xué)習(xí)中的基礎(chǔ)知識,需要的朋友可以參考下
    2015-11-11
  • MyBatis動態(tài)SQL、模糊查詢與結(jié)果映射操作過程

    MyBatis動態(tài)SQL、模糊查詢與結(jié)果映射操作過程

    本篇所講的動態(tài)SQL,是mybatis通過標(biāo)簽元素的形式,?如if,?choose,?when,?otherwise,?trim,?where,?set,?foreach等標(biāo)簽完成對sql的拼接功能,使用起來也非常靈活方便,這篇文章主要介紹了MyBatis動態(tài)SQL、模糊查詢與結(jié)果映射,需要的朋友可以參考下
    2023-08-08
  • MySQL如何新建用戶并授權(quán)

    MySQL如何新建用戶并授權(quán)

    本文主要介紹了如何在MySQL中創(chuàng)建新用戶并管理其權(quán)限,包括增刪改查、創(chuàng)建表、刪除表等操作,文中詳細(xì)說明了MySQL 5.7.18和MySQL 8.0版本中的權(quán)限配置,以及如何根據(jù)需要添加或刪除權(quán)限的步驟,旨在提供實用的數(shù)據(jù)庫管理技巧
    2024-10-10
  • 將MySQL的臨時目錄建立在內(nèi)存中的教程

    將MySQL的臨時目錄建立在內(nèi)存中的教程

    這篇文章主要介紹了將MySQL的臨時目錄建立在內(nèi)存中的教程,以獲得不關(guān)機情況下的高性能使用,需要的朋友可以參考下
    2015-04-04
  • MySQL中NULL對索引的影響深入講解

    MySQL中NULL對索引的影響深入講解

    這篇文章主要給大家介紹了關(guān)于MySQL中NULL對索引的影響的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用MySQL具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • mysql 索引分類以及用途分析

    mysql 索引分類以及用途分析

    MySQL索引分為普通索引、唯一性索引、全文索引、單列索引、多列索引等等。這里將為大家介紹著幾種索引各自的用途。
    2011-08-08
  • MySQL導(dǎo)致索引失效的幾種情況

    MySQL導(dǎo)致索引失效的幾種情況

    本文主要介紹了MySQL導(dǎo)致索引失效的幾種情況,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-06-06

最新評論