最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

MySQL索引添加與刪除方法實(shí)際示例

 更新時(shí)間:2026年01月09日 09:31:09   作者:Java 碼農(nóng)  
本文詳細(xì)介紹了在MySQL中如何添加、刪除索引以及查看索引信息,并討論了索引類型、最佳實(shí)踐和注意事項(xiàng),通過合理設(shè)計(jì)索引,可以有效提高數(shù)據(jù)庫查詢性能,感興趣的朋友跟隨小編一起看看吧

在 MySQL 中,索引是提高查詢性能的重要工具。以下是關(guān)于 MySQL 索引添加和刪除的詳細(xì)說明:

1. 添加索引

1.1 創(chuàng)建表時(shí)添加索引

-- 創(chuàng)建表時(shí)添加普通索引
CREATE TABLE users (
    id INT PRIMARY KEY AUTO_INCREMENT,
    username VARCHAR(50) NOT NULL,
    email VARCHAR(100) NOT NULL,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    INDEX idx_username (username),  -- 普通索引
    UNIQUE INDEX idx_email (email)  -- 唯一索引
);
-- 創(chuàng)建表時(shí)添加復(fù)合索引
CREATE TABLE orders (
    id INT PRIMARY KEY AUTO_INCREMENT,
    user_id INT NOT NULL,
    order_date DATE NOT NULL,
    amount DECIMAL(10,2),
    INDEX idx_user_date (user_id, order_date)  -- 復(fù)合索引
);

1.2 使用 ALTER TABLE 添加索引

-- 添加普通索引
ALTER TABLE users ADD INDEX idx_username (username);
-- 添加唯一索引
ALTER TABLE users ADD UNIQUE INDEX idx_email (email);
-- 添加主鍵索引(如果表沒有主鍵)
ALTER TABLE users ADD PRIMARY KEY (id);
-- 添加復(fù)合索引
ALTER TABLE orders ADD INDEX idx_user_date (user_id, order_date);
-- 添加全文索引
ALTER TABLE articles ADD FULLTEXT INDEX idx_content (content);

1.3 使用 CREATE INDEX 語句

-- 創(chuàng)建普通索引
CREATE INDEX idx_username ON users (username);
-- 創(chuàng)建唯一索引
CREATE UNIQUE INDEX idx_email ON users (email);
-- 創(chuàng)建復(fù)合索引
CREATE INDEX idx_user_date ON orders (user_id, order_date);
-- 創(chuàng)建全文索引
CREATE FULLTEXT INDEX idx_content ON articles (content);

2. 刪除索引

2.1 使用 ALTER TABLE 刪除索引

-- 刪除普通索引
ALTER TABLE users DROP INDEX idx_username;
-- 刪除唯一索引
ALTER TABLE users DROP INDEX idx_email;
-- 刪除主鍵索引
ALTER TABLE users DROP PRIMARY KEY;

2.2 使用 DROP INDEX 語句

-- 刪除索引
DROP INDEX idx_username ON users;
-- 刪除唯一索引
DROP INDEX idx_email ON users;

3. 查看索引信息

-- 查看表的索引信息
SHOW INDEX FROM users;
-- 查看創(chuàng)建表的語句(包含索引信息)
SHOW CREATE TABLE users;
-- 通過信息模式查看索引
SELECT 
    TABLE_NAME,
    INDEX_NAME,
    COLUMN_NAME,
    SEQ_IN_INDEX
FROM information_schema.STATISTICS
WHERE TABLE_SCHEMA = 'your_database_name'
AND TABLE_NAME = 'users';

4. 索引類型說明

4.1 不同類型的索引

-- 普通索引(最基本的索引,沒有唯一性限制)
CREATE INDEX idx_name ON table_name (column_name);
-- 唯一索引(確保列值的唯一性)
CREATE UNIQUE INDEX idx_name ON table_name (column_name);
-- 主鍵索引(特殊的唯一索引,不允許NULL值)
ALTER TABLE table_name ADD PRIMARY KEY (column_name);
-- 復(fù)合索引(多列組合的索引)
CREATE INDEX idx_name ON table_name (col1, col2, col3);
-- 全文索引(用于全文搜索)
CREATE FULLTEXT INDEX idx_name ON table_name (text_column);
-- 空間索引(用于地理數(shù)據(jù))
CREATE SPATIAL INDEX idx_name ON table_name (spatial_column);

5. 實(shí)際示例

-- 創(chuàng)建示例表
CREATE TABLE employees (
    id INT AUTO_INCREMENT,
    first_name VARCHAR(50),
    last_name VARCHAR(50),
    email VARCHAR(100),
    department_id INT,
    hire_date DATE,
    salary DECIMAL(10,2),
    PRIMARY KEY (id)
);
-- 添加各種索引
-- 單列索引
ALTER TABLE employees ADD INDEX idx_last_name (last_name);
-- 唯一索引
ALTER TABLE employees ADD UNIQUE INDEX idx_email (email);
-- 復(fù)合索引
ALTER TABLE employees ADD INDEX idx_dept_hire (department_id, hire_date);
-- 查看索引
SHOW INDEX FROM employees;
-- 刪除索引
ALTER TABLE employees DROP INDEX idx_last_name;
DROP INDEX idx_email ON employees;

6. 最佳實(shí)踐和注意事項(xiàng)

6.1 索引設(shè)計(jì)建議

-- 為經(jīng)常查詢的列創(chuàng)建索引
CREATE INDEX idx_frequently_queried ON table_name (frequently_queried_column);
-- 為外鍵列創(chuàng)建索引
CREATE INDEX idx_foreign_key ON child_table (parent_id);
-- 為WHERE子句中的列創(chuàng)建索引
CREATE INDEX idx_where_condition ON table_name (column_used_in_where);
-- 為ORDER BY和GROUP BY的列創(chuàng)建索引
CREATE INDEX idx_order_group ON table_name (column_used_for_ordering);

6.2 注意事項(xiàng)

  • 不要過度索引:每個(gè)索引都會增加寫操作的開銷
  • 選擇合適的前綴長度:對于長文本列
CREATE INDEX idx_name ON table_name (column_name(10)); -- 前綴索引
  • 考慮索引選擇性:高選擇性的列更適合建索引
  • 定期維護(hù)索引:使用 ANALYZE TABLE 更新索引統(tǒng)計(jì)信息

6.3 性能監(jiān)控

-- 檢查索引使用情況
EXPLAIN SELECT * FROM users WHERE username = 'john';
-- 查看未使用的索引(需要開啟性能模式)
SELECT * FROM sys.schema_unused_indexes;

通過合理使用索引,可以顯著提高 MySQL 數(shù)據(jù)庫的查詢性能,但需要根據(jù)具體的查詢模式和數(shù)據(jù)特征來設(shè)計(jì)和維護(hù)索引。

到此這篇關(guān)于MySQL索引添加與刪除方法實(shí)際示例的文章就介紹到這了,更多相關(guān)mysql索引添加與刪除內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • SQL實(shí)現(xiàn)LeetCode(181.員工掙得比經(jīng)理多)

    SQL實(shí)現(xiàn)LeetCode(181.員工掙得比經(jīng)理多)

    這篇文章主要介紹了SQL實(shí)現(xiàn)LeetCode(181.員工掙得比經(jīng)理多),本篇文章通過簡要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-08-08
  • MySQL中比較運(yùn)算符的具體使用

    MySQL中比較運(yùn)算符的具體使用

    本文介紹了SQL中常用的符號類型和非符號類型運(yùn)算符,符號類型運(yùn)算符包括等于(=)、安全等于(<=>)、不等于(<>/!=)、大小比較(<,<=,>,>=)等,感興趣的可以了解一下
    2025-07-07
  • 配置MySQL與卸載MySQL實(shí)例操作

    配置MySQL與卸載MySQL實(shí)例操作

    我們主要介紹的是正確通過rpm包安裝、對MySQL進(jìn)行配置與卸載的實(shí)際操作步驟,以下就是文章的具體內(nèi)容描述,望你會有所收獲。
    2010-08-08
  • mysql8創(chuàng)建、刪除用戶以及授權(quán)、消權(quán)操作詳解

    mysql8創(chuàng)建、刪除用戶以及授權(quán)、消權(quán)操作詳解

    上網(wǎng)找過資料說要進(jìn)入mysql數(shù)據(jù)庫在進(jìn)行這些操作,所以下面這篇文章主要給大家介紹了關(guān)于mysql8創(chuàng)建、刪除用戶以及授權(quán)、消權(quán)操作的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-03-03
  • Mysql入門基礎(chǔ) 數(shù)據(jù)庫創(chuàng)建篇

    Mysql入門基礎(chǔ) 數(shù)據(jù)庫創(chuàng)建篇

    Mysql入門基礎(chǔ) 數(shù)據(jù)庫創(chuàng)建篇,剛接觸php與mysql的朋友可以參考下。多寫多測試。
    2010-04-04
  • MySQL所支持的數(shù)據(jù)類型與表字段約束類型的學(xué)習(xí)教程

    MySQL所支持的數(shù)據(jù)類型與表字段約束類型的學(xué)習(xí)教程

    這篇文章主要介紹了MySQL所支持的數(shù)據(jù)類型與表字段約束類型的學(xué)習(xí)教程,是MySQL入門學(xué)習(xí)中的基礎(chǔ)知識,需要的朋友可以參考下
    2015-12-12
  • Mysql中的觸發(fā)器定義及語法介紹

    Mysql中的觸發(fā)器定義及語法介紹

    MySQL?的觸發(fā)器和存儲過程一樣,都是嵌入到?MySQL?中的一段程序,是?MySQL?中管理數(shù)據(jù)的有力工具,本文給大家詳細(xì)介紹mysql觸發(fā)器的定義語法知識,感興趣的朋友一起看看吧
    2022-06-06
  • MySQL導(dǎo)致索引失效的幾種情況

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

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

    MySQL 序列 AUTO_INCREMENT詳解及實(shí)例代碼

    這篇文章主要介紹了MySQL 序列 AUTO_INCREMENT詳解及實(shí)例代碼的相關(guān)資料,需要的朋友可以參考下
    2017-02-02
  • mysql數(shù)據(jù)庫中字符集亂碼問題原因及解決

    mysql數(shù)據(jù)庫中字符集亂碼問題原因及解決

    這篇文章主要介紹了mysql數(shù)據(jù)庫中字符集亂碼問題原因及解決,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-08-08

最新評論

遂川县| 清河县| 分宜县| 武威市| 日土县| 苏尼特右旗| 北安市| 建阳市| 乡城县| 乌鲁木齐县| 德清县| 通渭县| 佛学| 天镇县| 秦皇岛市| 宁国市| 上犹县| 娄底市| 镇江市| 旬邑县| 新巴尔虎右旗| 满城县| 灌阳县| 浮山县| 阿鲁科尔沁旗| 达日县| 清丰县| 瑞丽市| 望江县| 通海县| 大安市| 定日县| 甘德县| 务川| 濉溪县| 鹤岗市| 杭锦旗| 竹北市| 侯马市| 灵武市| 望城县|