当前位置:网站首页>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、索引原則
- 索引不是越多越好
- 不要對經常變動數據加索引
- 小數據量的錶不需要加索引
- 索引一般加在常用來查詢的字段上
边栏推荐
- Discussion Net legacy application transformation
- Such as the visual appeal of the live broadcast of NBA Finals, can you still see it like this?
- 2022 low voltage electrician examination and low voltage electrician simulation examination question bank
- jvm jni 及 pvm pybind11 大批量数据传输及优化
- Golang type assertion and conversion (and strconv package)
- Basic number theory -- Chinese remainder theorem
- 抓包整理外篇——————autoResponder、composer 、statistics [ 三]
- 浅议.NET遗留应用改造
- 淺析 Ref-NeRF
- How to choose cache read / write strategies in different business scenarios?
猜你喜欢

How to do Taobao full screen rotation code? Taobao rotation tmall full screen rotation code

Design e-commerce seckill system

运维各常用命令总结
![抓包整理外篇——————autoResponder、composer 、statistics [ 三]](/img/bf/ac3ba04c48e80b2d4f9c13894a4984.png)
抓包整理外篇——————autoResponder、composer 、statistics [ 三]

如临现场的视觉感染力,NBA决赛直播还能这样看?

Reinforcement learning - learning notes 1 | basic concepts

The "boss management manual" that is wildly spread all over the network (turn)

Memory analyzer (MAT)

How to choose cache read / write strategies in different business scenarios?

Experience summary of database storage selection
随机推荐
MySQL master-slave synchronization principle
Interval product of zhinai sauce (prefix product + inverse element)
抓包整理外篇——————autoResponder、composer 、statistics [ 三]
一台服务器最大并发 tcp 连接数多少?65535?
Redis data migration (II)
鹏城杯 WEB_WP
Analyse de REF nerf
Compilation Principle -- syntax analysis
Design e-commerce seckill system
Kubernetes 通信异常网络故障 解决思路
Shortest path problem of graph theory (acwing template)
CesiumJS 2022^ 源码解读[7] - 3DTiles 的请求、加载处理流程解析
Xai+ network security? Brandon University and others' latest "interpretable artificial intelligence in network security applications" overview, 33 page PDF describes its current situation, challenges,
Deep search DFS + wide search BFS + traversal of trees and graphs + topological sequence (template article acwing)
Example of peanut shell inner net penetration
Summary of common operation and maintenance commands
LabVIEW training
Offset related concepts + drag modal box case
Inventory 2021 | yunyuansheng embracing the road
Single page application architecture