当前位置:网站首页>MySQL——索引
MySQL——索引
2022-07-03 21:02:00 【Java學不會】
文章目錄
1、簡介
MySQL官方對索引的定義為:索引(Index)是幫助MySQL高效獲取數據的數據結構。
索引在小數據量的時候,用處不大,但是在大數據的時候,區別十分明顯。
2、索引的分類
2.1、主鍵索引(PRIMARy KEY)
- 唯一的標識,主鍵不可重複,一個錶只能有一個主鍵。
2.2、唯一索引(UNIQUE KEY)
- 避免重複的數據出現,唯一索引可以重複,一個錶中可以有多個唯一索引
2.3、常規索引(KEY/INDEX)
- 默認的,index,key關鍵字來設置
2.4、全文索引(FullText)
- 在特定的數據庫引擎下才有,MySAM
- 快速定比特數據
3、測試索引
3.1、創建100萬條數據
CREATE TABLE `app_user` (
`id` BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT,
`name` VARCHAR(50) DEFAULT'' COMMENT'用戶昵稱',
`email` VARCHAR(50) NOT NULL COMMENT'用戶郵箱',
`phone` VARCHAR(20) DEFAULT'' COMMENT'手機號',
`gender` TINYINT(4) UNSIGNED DEFAULT '0'COMMENT '性別(0:男;1:女)',
`password` VARCHAR(100) NOT NULL COMMENT '密碼',
`age` TINYINT(4) DEFAULT'0' COMMENT '年齡',
`create_time` DATETIME DEFAULT CURRENT_TIMESTAMP,
`update_time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`)
) ENGINE=INNODB DEFAULT CHARSET=utf8 COMMENT = 'app用戶錶'
-- 插入100玩數據
DELIMITER $$ -- 寫函數之前必須要寫,標志
CREATE FUNCTION mock_data()
RETURNS INT
BEGIN
DECLARE num INT DEFAULT 1000000;
DECLARE i INT DEFAULT 0;
WHILE i<num DO
INSERT INTO app_user(`name`,`email`,`phone`,`gender`,`password`,`age`)
VALUES(CONCAT('用戶',i),'[email protected]',CONCAT('15',FLOOR(RAND()*(999999999-100000000)+100000000)),
FLOOR(RAND()*2),UUID(),FLOOR(RAND()*100));
SET i=i+1;
END WHILE;
RETURN i;
END;
SELECT mock_data()
- 查詢第999999條數據:SELECT * FROM app_user WHERE
name=‘用戶999999’;
3.2、添加索引
-- id_錶名_字段名
CREATE INDEX id_app_user_name ON app_user(`name`)
- 查詢第999999條數據:SELECT * FROM app_user WHERE
name=‘用戶999999’;
4、索引原則
- 索引不是越多越好
- 不要對經常變動數據加索引
- 小數據量的錶不需要加索引
- 索引一般加在常用來查詢的字段上
边栏推荐
- Etcd 基于Raft的一致性保证
- "Actbert" Baidu & Sydney University of technology proposed actbert to learn the global and local video text representation, which is effective in five video text tasks
- Kernel symbol table
- jvm jni 及 pvm pybind11 大批量数据传输及优化
- Summary of common operation and maintenance commands
- Basic knowledge of dictionaries and collections
- Producer consumer mode (multithreading, use of shared resources)
- Shortest path problem of graph theory (acwing template)
- In 2021, the global foam protection packaging revenue was about $5286.7 million, and it is expected to reach $6615 million in 2028
- String and+
猜你喜欢
![[gd32l233c-start] 5. FLASH read / write - use internal flash to store data](/img/4f/ed8ca2f43ba5a8e5da63eb419aae82.jpg)
[gd32l233c-start] 5. FLASH read / write - use internal flash to store data

你真的知道自己多大了吗?

内存分析器 (MAT)

Scientific research document management Zotero

2022 high voltage electrician examination and high voltage electrician reexamination examination

Advanced collaboration: coroutinecontext

Mysql database ----- common commands of database (based on database)

全网都在疯传的《老板管理手册》(转)

一台服务器最大并发 tcp 连接数多少?65535?

Preliminary practice of niuke.com (11)
随机推荐
Basic preprocessing and data enhancement of image data
The global industrial design revenue in 2021 was about $44360 million, and it is expected to reach $62720 million in 2028. From 2022 to 2028, the CAGR was 5.5%
MySQL——数据库备份
Redis data migration (II)
浅议.NET遗留应用改造
@Scenario of transactional annotation invalidation
Is flush account opening and registration safe and reliable? Is there any risk?
强基计划 数学相关书籍 推荐
不同业务场景该如何选择缓存的读写策略?
Such as the visual appeal of the live broadcast of NBA Finals, can you still see it like this?
Thread, thread stack, method stack, the difference of creating thread
Install and use Chrony, and then build your own time server
In 2021, the global foam protection packaging revenue was about $5286.7 million, and it is expected to reach $6615 million in 2028
MDM mass data synchronization test verification
Apprentissage intensif - notes d'apprentissage 1 | concepts de base
jvm jni 及 pvm pybind11 大批量数据传输及优化
How to do Taobao full screen rotation code? Taobao rotation tmall full screen rotation code
Preliminary practice of niuke.com (11)
Rhcsa third day operation
Get log4net log file in C - get log4net log file in C