Access应用:仔细地选择索引

仔细地选择索引

Access根据数据类型,使用了一个索引来依照合理的顺序分类数据。正确的索引能够提高其性能,而错误的索引则会降低效率。到目前为止,最常见的错误就是设置过多的索引。因为Access会在你每次添加或更改记录的时候升级索引,因此过多的索引就会影响其性能。幸运的是,你可以采用一些关于索引方面的向导来帮助你:

请记住,一个主键约束会自动地进行归类,这是一个你无法控制的内部动作。在大多数的表格中,这是你真正需要的唯一索引。它之所以被成为是独一无二的索引是由于在域中的所有值都必须是独一无二的。

作为一般规则,可以考虑将表格的外键约束编入索引。

避免表格中一个你会频繁更新的额外索引,除非是在上述的情况下所应用的。

如果这个表格具有主键约束,那么仅在当你处理大量的数据,而你打算经常通过这个域来进行搜索或分类,或是这个域所包含的大部分都是独一无二的值时,可以考虑将第二个域编入索引。

简单说来,将任何你想要进行分类、搜索或是加入其它表格的域编入索引,都能够提升你任务完成的速度。只需要记住,每个索引都会增加数据库的大小,过多的索引会使一切都变慢。如果你处理的只是一些少量到适中的量的数据,那么除了主键约束之外的索引则通常都是不必要的。

关于索引最后的话:不要使用索引来进行分类。这并不是它们的用途,你也很可能无法得到你所需要的结果。

时间: 2024-10-31 18:17:27

Access应用:仔细地选择索引的相关文章

案例:MySQL优化器如何选择索引和JOIN顺序

我们知道,MySQL优化器只有两个自由度:顺序选择:单表访问方式:这里将详细剖析下面的SQL,看看MySQL优化器如何做出每一步的选择. explain select * from employee as A,department as B where A.LastName = 'zhou' and B.DepartmentID = A.DepartmentID and B.DepartmentName = 'TBX'; 1. 可能的选择 这里看到JOIN的顺序可以是A|B或者B|A,单表访问方

MySQL · 捉虫动态 · order by limit 造成优化器选择索引错误

问题描述 bug 触发条件如下: 优化器先选择了 where 条件中字段的索引,该索引过滤性较好: SQL 中必须有 order by limit 从而引导优化器尝试使用 order by 字段上的索引进行优化,最终因代价问题没有成功. 复现case 表结构 create table t1( id int auto_increment primary key, a int, b int, c int, key iabc (a, b, c), key ic (c) ) engine = innod

探究MySQL优化器对索引和JOIN顺序的选择_Mysql

本文通过一个案例来看看MySQL优化器如何选择索引和JOIN顺序.表结构和数据准备参考本文最后部分"测试环境".这里主要介绍MySQL优化器的主要执行流程,而不是介绍一个优化器的各个组件(这是另一个话题).    我们知道,MySQL优化器只有两个自由度:顺序选择:单表访问方式:这里将详细剖析下面的SQL,看看MySQL优化器如何做出每一步的选择. explain select * from employee as A,department as B where A.LastName

组合索引的选择原则

表上的索引是根据什么建立的,特别是组合索引,有多个的时候优化器又怎么选择使用哪个呢, 今天做个试验验证下 新建这个表testindex 表结构 Name       Type          Nullable Default Comments ---------- ------------- -------- ------- -------- CREATETIME DATE          Y                         LOC        VARCHAR2(100)

MySQL · 最佳实践 · 一个“异常”的索引选择

背景 在处理一个用户性能问题的时候, 发现有一个全表扫描语句, 上下文如下: 这是很奇怪的, Tips: MySQL在执行条件判断时,若参数类型与字段类型不匹配, 则会作类型转换, 符合转换规则的, 转换完成后可以利用索引 而当参数为字符串,字段类型为整型时, 这个转换是成立的, 比如这个case. 因此我们有必要查一下是什么原因. 分析 在优化器执行流程中, 要选择索引, 需要先判断where的部分的条件操作能否使用索引.经典的有, Tips: 在字段上作函数操作,是无法使用索引的. 比如 w

【云和恩墨大讲堂】复合索引与绑定变量

编辑手记:2016 Oracle 技术嘉年华活动已经结束,为了让更多的技术爱好者有机会获取大会干货资源,我们将不断邀请演讲嘉宾展开"2016 Oracle 线上嘉年华". 讲师简介 邓秋爽(小鱼) 云和恩墨专家,有超过5年超大型数据库专业服务经验,擅长oracle 数据库优化.SQL优化和troubleshooting 今晚的恩墨大讲堂将有我为大家分享SQL审核中的两个典型案例,如下: 1复合索引前导列选择 2绑定变量分享--某业务SQL性能问题分析 在介绍这两个case之前先对目前我

Oracle之函数索引

Oracle之函数索引 在Oracle中,有一类特殊的索引,称为函数索引(Function-Based Indexes,FBI),它基于对表中列进行计算后的结果创建索引.函数索引在不修改应用程序的逻辑基础上提高了查询性能.如果没有函数索引,那么任何在列上执行了函数的查询都不能使用这个列的索引.当在查询中包含该函数时,数据库才会使用该函数索引.函数索引可以是一个B-Tree索引或位图索引. 用于生成索引的函数可以是算术表达式,也可以是一个包含SQL函数.用户定义PL/SQL函数.包函数,或C调用的

基于索引的SQL语句优化之降龙十八掌

  From:www.oracle.com.cn 基于索引的SQL语句优化之降龙十八掌 1        前言        2 2        总纲        2 3        降龙十八掌        3第一掌避免对列的操作        3第二掌避免不必要的类型转换        4第三掌增加查询的范围限制        4第四掌尽量去掉"IN"."OR"        4第五掌尽量去掉 "<>"        5第六

ACCESS数据的优化和安全

怎样对数据库中的表进行分析和优化 现在基本的操作你已经会了,但有时候建立的数据库用起来很慢,那是因为数据库在建立的时候,没有对它进行过优化分析.现在我们就讲讲数据库的优化分析. 我们先打开一个要进行分析的数据库,然后单击"工具"菜单上的"分析"选项,弹出的菜单上有"表"."性能"和"文档管理器"三个命令.这三个命令可以对相应的内容进行优化. 首先要对对表进行一下优化,单击"表"这个命令.