建立索引常用的规则如下:
1、表的主键、外键必须有索引;
2、数据量超过300的表应该有索引;
3、经常与其他表进行连接的表,在连接字段上应该建立索引;
4、经常出现在Where子句中的字段,特别是大表的字段,应该建立索引;
5、索引应该建在选择性高的字段上;
6、索引应该建在小字段上,对于大的文本字段甚至超长字段,不要建索引;
7、复合索引的建立需要进行仔细分析;尽量考虑用单字段索引代替: A、正确选择复合索引中的主列字段,一般是选择性较好的字段; B、复合索引的几个字段是否经常同时以AND方式出现在Where子句中?单字段查询是否极少甚至没有?如果是,则可以建立复合索引;否则考虑单字段索引; C、如果复合索引中包含的字段经常单独出现在Where子句中,则分解为多个单字段索引; D、如果复合索引所包含的字段超过3个,那么仔细考虑其必要性,考虑减少复合的字段; E、如果既有单字段索引,又有这几个字段上的复合索引,一般可以删除复合索引;
8、频繁进行数据操作的表,不要建立太多的索引;
9、删除无用的索引,避免对执行计划造成负面影响; 以上是一些普遍的建立索引时的判断依据。一言以蔽之,索引的建立必须慎重,对每个索引的必要性都应该经过仔细分析,要有建立的依据。因为太多的索引与不充分、不正确的索引对性能都毫无益处:在表上建立的每个索引都会增加存储开销,索引对于插入、删除、更新操作也会增加处理上的开销。另外,过多的复合索引,在有单字段索引的情况下,一般都是没有存在价值的;相反,还会降低数据增加删除时的性能,特别是对频繁更新的表来说,负面影响更大
- 浏览: 184371 次
- 性别:
- 来自: 北京
最新评论
-
wsdst497:
chrome 版本号39 新窗口还是会被屏蔽
超链接实现新窗口打开很容易 -
zhanyeting:
[b][/b]
ajax 页面无刷新更改数据库中的内容 -
ewf_momo:
...
STRUTS 2 -
gaoxingang2008:
排一下版 太乱了
javascript -
javsky:
经验值得借鉴,项目还是不错的~我们公司最近也在做相关的项目,物 ...
IT个人年终工作总结[1]
相关推荐
降龙十八掌内功的入门基础,建立索引常用的规则如下: 1、表的主键、外键必须有索引; 2、数据量超过300的表应该有索引; 3、经常与其他表进行连接的表,在连接字段上应该建立索引; 4、经常出现在Where子句中的字段...
然后,进行概念设计,建立实体关系模型(ER图),并转化为逻辑设计,也就是创建数据库表结构。在物理设计阶段,要考虑数据存储的效率,设置完整性约束,并可能需要编写存储过程和触发器以实现特定的业务逻辑。最后,...
3. **建立索引**:根据数据点的坐标建立分块索引的线性链表。 4. **剖分**:将数据区域的凸闭包剖分为两个超三角形。 5. **数据点插入**:按照建立的数据链表顺序将数据点插入到超三角形中。 - 找到包含数据点的...
建立索引的步骤如下:在表设计器中,单击"索引"标签,在索引名列输入"部门号",在类型列选择"主索引",在表达式列输入"部门号",在排序列使箭头向上,然后点击"确定"按钮,保存表结构。 4. 建立表间的永久联系 ...
创建前缀索引(如仅对字符列的前几个字符建立索引)可以节省存储空间,语法为:`index_col_name[(length)]`。 【MySQL视图(View)】 视图是虚拟的表,基于一个或多个表的查询结果,它不存储实际数据,而是根据...
在上述链接的文章中,作者提供了实现这一功能的源码,主要步骤如下: 1. **连接Elasticsearch**:使用像`elasticsearch`这样的Node.js库,可以方便地与ES集群建立连接。通过`Client`对象,你可以执行各种ES操作,如...
总的来说,理解如何为数据库建立索引是提升应用程序性能的关键。合理使用索引可以减少全表扫描,加快查询速度,特别是对于频繁进行复杂查询的应用,效果更为明显。然而,索引也会占用额外的存储空间,并可能影响数据...
在考生文件夹下,数据库文件中建立表“学生”,表结构如下: * 设置“编号”字段为主键; * 设置“年龄”字段的有效性规则为:年龄大于20并且小于35; * 在“学生”表中输入以下2条记录: 同样的操作也可以应用于...
- **column_name**:需要建立索引的列的名称。 - **length**:索引的长度,通常用于 VARCHAR 类型的列,以提高索引效率。 示例: ```sql CREATE INDEX idx_name ON customer (name(10)); ``` 此命令将基于 `...
5. **分区**:对于大型数据集,分区可以提高全文检索的性能,通过将数据划分为多个部分并分别建立索引来实现。 6. **查询优化**:CONTAINS是Oracle Text的主要查询操作,它支持逻辑运算符(如AND、OR、NOT)以及...
注意:不能在数据类型为 text、ntext 和 image 的列上建立索引。使用 DROP INDEX 语句删除索引,语句格式为:DROP INDEX <表名.索引名>。注意:DropIndex 语句能够删除 Create Index 语句所建立的索引,但是它不能...
创建索引的具体步骤如下: - **第一步**:准备要索引的原文档。 - **第二步**:将原文档传给分词器进行词法分析,分解成一个个词元。 - **第三步**:将得到的词元传递给语言处理组件,进行词干化、去除停用词等操作...
(1)在考生文件夹下,"Access1-1.mdb"数据库文件中建立表"学生",表结构如下: * 编号(主键) * 学号 * 姓名 * 性别 * 出生日期 (2)设置"编号"字段为主键; (3)设置"年龄"字段的有效性规则为:大于20并且...
有序单词搜索树是一种多路搜索树,其结构规则如下: 1. 树的各级子树的顺序反映单词构成的字母顺序。 2. 每棵子树至少含有两个分支。 3. 根节点和内部节点不存储单词,仅存储叶节点,每个叶节点对应一个唯一单词。 4...
2. 建立索引: 在orders表上建立一个普通索引,索引名为nf,索引表达式为"year(签订日期)"。这可以通过在表设计器的“索引”选项卡中设定,或者在命令行输入如下命令: ``` INDEX ON year(签订日期) TAG nf ``` 3. ...
每种方式的特点和工作原理如下: * nested loop:使用条件:任何连接优点:当有高选择性索引或进行限制性搜索时效率比较高,能够快速返回第一次的搜索结果缺点:当索引丢失或者查询条件限制不够时,效率很低;当表...
具体参数解析如下: - `CREATE DATABASE`:创建一个新数据库。 - `DB2_GCB`:指定创建的数据库名称。 - `ON G:`:指定存储位置为G盘。 - `ALIAS DB2_GCB`:设置别名为DB2_GCB。 - `USING CODE SET GBK`:设置数据库...
为了优化查询效率,可能会对经常用于搜索或排序的字段建立索引。 **文件名称列表分析** 虽然给定的文件名称列表只有一个:"hbirnate",这可能是指Hibernate的配置文件或者是与Hibernate相关的目录。在实际项目中,...
Ø Lucene中的类主要组成如下: 1)org.apache.1ucene.analysis语言分析器,主要用于的切词Analyzer是一个抽象类,管理对文本内容的切分词规则。 2)org.apache.1uceene.document索引存储时的文档结构管理,类似于...
索引是提高数据库查询效率的重要手段,其命名规则如下: - **格式固定**:索引名遵循`IDX_table_<column>_<column>`格式,其中`table`代表建立索引的表名,`column`代表索引涉及的字段名。 - **长度限制**:索引名...