在数据库中,元组(tuple,即“行/记录”)本身不能像字段那样直接被“索引”,通常我们说的“对元组索引”实际上是指对元组的某些属性(列)建立索引,以加快定位元组的速度。下面从概念、方式和示例几个层面说明。
数据库不是“索引元组”,而是“通过列索引找到元组”
对某一列建立索引:
CREATE INDEX idx_student_id
ON student(id);
查询时:
SELECT * FROM student WHERE id = 1001;
→ 数据库通过索引快速定位到对应元组
对多个列建立联合索引:
CREATE INDEX idx_name_age
ON student(name, age);
适用于:
WHERE name = 'Tom' AND age = 20;
⚠️ 注意最左前缀原则
保证列值唯一,同时加快查询:
CREATE UNIQUE INDEX idx_email
ON user(email);
主键默认就是索引:
PRIMARY KEY(id)
→ 数据库自动为 id 建立聚簇索引(如 InnoDB)
以 B+ 树索引为例:
WHERE 条件使用索引通过主键 / 唯一键:
WHERE id = 5;
CREATE INDEX idx ON table(col);
CREATE INDEX idx ON table(col);
CREATE INDEX idx ON table(col);
数据库通过对“列”建立索引来加速“元组”的查找,而不是直接索引元组本身。
如果你愿意,我也可以:
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。