当前位置: 首页 > news >正文

数据库索引的创建和使用

数据库索引
数据库的索引可以加快查询速度,原因是索引使用特定的数据结构(B-Tree)对特定的列额外组织存放,加快存储引擎(索引是存储引擎实现)查找记录的速度。
索引优化是数据库优化的最重要手段。
如果查询语句使用索引(通常是where条件匹配索引)就会利用树的结构加快查找,索引会按值查找到要查找的行在表中位置,不需回表查询数据的就是聚簇索引(索引和数据存放在一起)。通常是需要回表再查数据,需要消耗额外的磁盘IO。所以有些时候(如按顺序读取数据)全表扫描会比使用索引快的原因就在于此。

创建索引

1,普通索引的创建:

create index 索引名 on 表名(字段名(索引长度));

索引长度可以使用列的一部分创建索引,可以使索引文件大大减小,从而节省了大量的磁盘空间,有可能提高INSERT操作的速度。
例如:创建班级表中,name字段的索引

create index idx_classes_name on classes(name);

创建表的时候直接指定:

CREATE TABLE mytable(ID INT NOT NULL, username VARCHAR(16) NOT NULL, INDEX [indexName] (username(length)));

2,删除索引

 drop index 索引名 on 表名;

例如:删除班级表中name字段的索引

 drop index idx_classes_name on classes;

3,主键索引
就是表中创建主键,默认的唯一的不为空的索引

4,唯一索引
索引列的值必须唯一,但允许有空值。如果是组合索引,则列值的组合必须唯一,
就是创建的字段是UNIQUE的not null的字段,就是唯一索引

CREATE UNIQUE INDEX 索引名称 ON 表名称 (列名称) 

“列名称” 规定你需要索引的列。

5,多列索引

ALTER TABLE 表名 ADD INDEX 索引名(字段1,字段2,字段3);

注意在mysql中执行查询时,只能使用一个索引,如果我们在字段1,字段2,字段3上分别建索引,执行查询时,只能使用一个索引,mysql会选择一个最严格(获得结果集记录数最少)的索引。

索引的查询

show index from 表名;

查看该表中已经有的索引。

使用场景
要考虑对数据库表的某列或某几列创建索引,需要考虑以下几点:
1,数据量较大,且经常对这些列进行条件查询。
2,该数据库表的插入操作,及对这些列的修改操作频率较低。
3,索引会占用额外的磁盘空间。
满足以上条件时,考虑对表中的这些字段创建索引,以提高查询效率。
反之,如果非条件查询列,或经常做插入、修改操作,或磁盘空间不足时,不考虑创建索引。

http://www.lryc.cn/news/411573.html

相关文章:

  • 光流传感器 - 从零开始认识各种传感器【第二十二期】
  • 爬虫:jsonpath模块及腾讯招聘数据获取
  • 透明屏幕的显示原理与特点
  • [Day 41] 區塊鏈與人工智能的聯動應用:理論、技術與實踐
  • PHP表单验证
  • 英文文献翻译软件有哪些?知道这5款工具就够了
  • 单线程 和多线程区别,看打印输出1000个数字效果
  • 【问题处理】海康视频websocket代理问题(websocket在业务系统https协议下调用海康ws协议)
  • 【面试分享】面试题——redis
  • GLSL教程 第十三章:综合项目:创建一个完整的渲染场景(一更)
  • pgvector: 30 倍构建向量嵌入索引
  • GNSS形变监测系统
  • 每天一个数据分析题(四百五十三)- 随机抽样
  • Python爬虫知识体系-----Selenium
  • springboot+webSocket对接chatgpt
  • 【ROS2】 默认的DDS通信中间件替换为Eclipse Cyclone_DDS (DDS配置方法)
  • 迈向数智金融:机器学习金融科技新纪元的新风采
  • Nginx+PHP+CI框架实现,访问静态文件带权限验证
  • javascript 第二天
  • unity2D游戏开发17战斗精灵
  • kafka架构+原理+源码
  • 实力共鉴!微风企斩获2024年浙江省专精特新中小企业
  • C#:枚举及位标志周边知识详解(小白入门)
  • 这本vue3编译原理开源电子书,初中级前端竟然都能看懂
  • 小白如何安装WNO(小波神经算子),需要安装python3.8,torch,ptwt,pywt等
  • Java HashMap 源码解读笔记(一)--xunznux
  • “等保测评下的数据加密与隐私保护“
  • Oat++ 后端实现跨域
  • Three basic starting points to do AI
  • 等保测评练习卷22