首页 > 数据库 >mysql建立索引的原则

mysql建立索引的原则

时间:2022-10-15 09:24:44浏览次数:47  
标签:原则 建立 查询 索引 字段 mysql 数据

mysql建立索引的原则:

1) 定义主键的数据列一定要建立索引。

2) 定义有外键的数据列一定要建立索引。

3) 对于经常查询的数据列最好建立索引。

4) 对于需要在指定范围内的快速或频繁查询的数据列;

5) 经常用在WHERE子句中的数据列。

6) 经常出现在关键字order by、group by、distinct后面的字段,建立索引。

    如果建立的是复合索引,索引的字段顺序要和这些关键字后面的字段顺序一致,否则索引不会被使用。

7) 对于那些查询中很少涉及的列,重复值比较多的列不要建立索引。

8) 对于定义为text、image和bit的数据类型的列不要建立索引。

9) 对于经常存取的列避免建立索引

10) 限制表上的索引数目。对一个存在大量更新操作的表,所建索引的数目一般不要超过3个,最多不要超过5个。

     索引虽说提高了访问速度,但太多索引会影响数据的更新操作。

11) 对复合索引,按照字段在查询条件中出现的频度建立索引。在复合索引中,记录首先按照第一个字段排序。

      对于在第一个字段上取值相同的记录,系统再按照第二个字段的取值排序,以此类推。

 

索引的不足之处:

虽然索引大大提高了查询速度,同时却会降低更新表的速度,如对表进行INSERT、UPDATE和DELETE。因为更新表时,MySQL不仅要保存数据,还要保存一下索引文件。

建立索引会占用磁盘空间的索引文件。一般情况这个问题不太严重,但如果你在一个大表上创建了多种组合索引,索引文件的会膨胀很快。

索引只是提高效率的一个因素,如果你的MySQL有大数据量的表,就需要花时间研究建立最优秀的索引,或优化查询语句。

 

标签:原则,建立,查询,索引,字段,mysql,数据
From: https://www.cnblogs.com/lazb/p/16793565.html

相关文章

  • MySQL----语言基础
    MySQL----语言基础语法特点SQL对关键字的大写不敏感SQL语句可以单行或者多行书写,以分号;结束。SQL的注释:--单行注释,--后面一定要加一个空格‘单行注释,可以不用加......
  • MySQL 8.x Error All In One
    MySQL8.xErrorAllInOneloginerrorERROR1045(28000):Accessdeniedforuser'root'@'localhost'(usingpassword:YES)问题排查https://www.cnblogs.com/z......
  • 表与索引分布在不同表空间,删除其中一个表空间的测试
    文档课题:表与索引分布在不同表空间,删除其中一个表空间的测试.数据库:oracle11.2.0.464位1、环境准备sys@ORCL2022-10-1409:49:15>createtablespaceapp1tbsdatafile'......
  • InnoDB存储引擎:索引与算法
    InnoDB存储引擎索引概述InnoDB支持以下几种常见的索引:B+树索引(传统意义上的索引,这是目前关系型数据库系统中查找最为常用和最为有效的索引;B+树索引并不能找到一个给......
  • MySQL体系结构和存储引擎
    1.数据库和实例数据库:物理操作系统文件或其他形式文件类型的集合。实例:MySQL数据库由后台线程以及一个共享内存区组成。(数据库实例才是真正用于操作数据库文件的)实例与......
  • MySQL进阶
    1、存储引擎1.1、MySQL体系结构连接层:最上层是一些客户端和链接服务,主要完成一些类似于连接处理、授权认证以及相关的安全方案。吴福气也会为安全接入的每个客户端验证......
  • mysql用户变量的应用:查询所有的节点或查询所有的子节点
    用户变量:以"@"开始,形式为"@变量名"创建用户定义的变量,请使用格式@variable_name,其中variable_name包含字母数字字符。从MySQL5.7.5开始,用户定义变量的最大长度为64个字......
  • 项目概述、部署数据库服务mysql、配置网站服务、测试配置
    Project3_day01知识点:一、准备数据库服务器二、搭建数据库服务器三、配置MySQL主从同步四、配置读写分离服务器五、配置数据库服务器六、配置网站服务器七、测试配......
  • 项目4 MySQL数据表的检索总结
    目录​​【任务4.1】查询时选择列​​​​1.基本查询语句​​​​2,检索所有列​​​​3.检索指定列​​​​(1)检索单个字段​​​​(2)检索多个字段​​​​(3)定义别名​​​......
  • MySQL全局锁和表锁
    MySQL全局锁和表锁该文摘抄自林晓斌老师的文章数据库锁设计的初衷是处理并发问题。作为多用户共享的资源,当出现并发访问的时候,数据库需要合理地控制资源的访问规则。而锁......