首页 > 数据库 >软件测试笔记|数据库基础|创建索引的原则

软件测试笔记|数据库基础|创建索引的原则

时间:2024-10-16 08:51:44浏览次数:3  
标签:创建 数据库 查询 索引 表中 排序 软件测试

创建数据库索引有以下原则:

一、选择合适的列创建索引

1. 选择经常用于查询条件的列:如果某一列经常在 WHERE 子句中作为条件出现,那么为该列创建索引可以大大提高查询速度。例如,在一个员工表中,如果经常根据员工的姓名进行查询,那么为“姓名”列创建索引是一个不错的选择。

2. 选择用于排序的列:如果某一列经常用于 ORDER BY 子句进行排序,为该列创建索引可以加快排序操作。比如在订单表中,按照订单日期进行排序查看订单的先后顺序,为“订单日期”列创建索引可以提高排序效率。

3. 选择唯一值较多的列:如果某一列的唯一值较多,那么索引的选择性就高,能够更有效地过滤数据。例如,在一个用户表中,“用户 ID”列通常具有较高的唯一性,为其创建索引可以快速定位特定的用户记录。

二、避免过度创建索引

1. 索引会占用额外的存储空间:每一个索引都需要占用一定的磁盘空间来存储索引数据。如果创建过多的索引,会占用大量的存储空间,可能导致数据库的存储成本增加。

2. 过多的索引会影响数据的插入、更新和删除操作:当对表中的数据进行插入、更新或删除操作时,数据库不仅要更新表中的数据,还要同时更新相关的索引。如果索引过多,这些操作的性能开销会增大,从而降低数据库的整体性能。

三、考虑索引的类型

1. 普通索引:最常见的索引类型,适用于大多数情况。它可以提高查询性能,但不具有唯一性约束。

2. 唯一索引:确保索引列中的值是唯一的。如果表中的某一列需要保证唯一性,比如用户表中的“用户名”列,可以创建唯一索引。

3. 组合索引:当多个列经常一起作为查询条件时,可以创建组合索引。组合索引可以提高多个列组合查询的性能。

四、定期维护索引

1. 重建索引:随着数据的不断插入、更新和删除,索引可能会变得碎片化,影响查询性能。定期重建索引可以优化索引的结构,提高查询速度。

2. 分析索引使用情况:通过数据库的性能监控工具,分析索引的使用情况,确定哪些索引是有效的,哪些索引是多余的。对于很少被使用的索引,可以考虑删除以释放存储空间和提高数据库性能。

标签:创建,数据库,查询,索引,表中,排序,软件测试
From: https://blog.csdn.net/weixin_46652722/article/details/142969516

相关文章

  • 保证Mysql数据库的安全性
    数据库安全性的重要性在一个企业中,为了维护企业声誉和客户信任,保护客户信息和公司数据就显得至关重要,再者,确保公司的系统正常运行,也要保证数据不被恶意篡改,还需要抵御外部攻击和内部威胁。防止数据泄露加密:使用SSL/TLS加密传输数据,启用数据加密功能保护存储的数据使用Op......
  • 基于SpringBoot + mybatis + logback + shiro的仓库管理系统(完美运行、数据库源代码、
    文章目录前言一、系统功能模块二、开发环境三、部分功能模块展示3.1登录模块3.2后台首页3.3客户管理3.4供应商管理3.5商品管理3.6商品进货3.7商品退货查询3.8商品销售3.9销售退货查询3.10部门管理3.11菜单管理3.12权限管理3.13角色管理3.14用户管理3.15图......
  • IDEA连接数据库后,在使用表的时候有时候未检测到表
    我的这个产生的原因:之前做项目的时候检测到category表了,但后来数据库断开后,等再次连接上数据库,可以检测到数据库,但数据库中的表直接用,是检测不到的。解决方法一:使用数据库中表的时候,可以[数据库.数据库表],如下图所示,可以看到此时使用表就不爆红了。 解决方法二:......
  • 软件测试笔记
    (1)需求测试需求:需求文档,制作的需求书(全称:软件需求规格说明书,简称:srs)需求:根据客户要实现一个功能;开发根据需求编写代码,测试也是根据需求编写测试用例和测试案例:测试制作水杯的说明书测试:需求是否合理,需求有没错别字,需求是否规范,需求是否具有唯一性等(2)界面测试界面测试也是外观测......
  • 公交线路查询系统|基于SprinBoot+vue公交线路查询系统(源码+数据库+文档)
    公交线路查询系统目录基于SprinBoot+vue公交线路查询系统一、前言二、系统设计三、系统功能设计 四、数据库设计 五、核心代码 六、论文参考七、最新计算机毕设选题推荐八、源码获取:博主介绍:✌️大厂码农|毕设布道师,阿里云开发社区乘风者计划专家博主,CSDN平台Ja......
  • 景区民宿预约|基于SprinBoot+vue景区民宿预约系统(源码+数据库+文档)
    景区民宿预约系统:目录基于SprinBoot+vue景区民宿预约系统一、前言二、系统设计三、系统功能设计 四、界面设计 五、核心代码 六、论文参考七、最新计算机毕设选题推荐八、源码获取:博主介绍:✌️大厂码农|毕设布道师,阿里云开发社区乘风者计划专家博主,CSDN平台Java......
  • 数据库基础知识
    数据库范式1NF:属性不可再分割,字段只能是一个值,不能再分为多个其他字段。2NF:非主键字段之间不能存在依赖关系,必须完全依赖于主键。3NF:所有非主键字段必须直接依赖于主键,不能存在传递依赖。【注意】阿里巴巴开发手册这样说到:不得使用外键与级联,一切外键概念必须在应用层解......
  • MySQL数据库宕机,启动不起来,教你一招搞定!
    查看MySQLerror日志查看MySQLerror日志,排查哪个表(表空间)文件破坏或者丢失,线索就是[pageid:space=xxx,pagenumber=xxx]。2024-09-09T10:12:39.111413+08:000[ERROR]InnoDB:Databasepagecorruptionondiskorafailedfilereadofpage[pageid:space=73,page......
  • MySQL数据页损坏,数据库启动不起来,再教你一招搞定!
    上一篇文章[MySQL数据库宕机,启动不起来,教你一招搞定!]介绍了数据页损坏一种修复方法,现在介绍另外一种方法,使用第三方工具Inno_space来进行修复。Inno_space是一个专为解析和修复InnoDB表空间文件(.ibd)设计的命令行工具。它允许用户直接访问和操作这些文件,同时还支持修复corrupt......
  • ElasticSearch的倒排索引和相关概念与MySQL的对比
    ElasticSearch的倒排索引和相关概念在用关系型数据库时,一些频繁用作查询条件的字段我们都会去建立索引来提升查询效率。在关系型数据库中,我们一般都采用B树索引进行存储,所以B树索引也是我们接触比较多的一种索引数据结构,但是在使用过程中,我们发现无法使用关系型数据库进行类......