`

建立索引常用的规则如下:

 
阅读更多

建立索引常用的规则如下:

1、表的主键、外键必须有索引;
2、数据量超过300的表应该有索引;
3、经常与其他表进行连接的表,在连接字段上应该建立索引;
4、经常出现在Where子句中的字段,特别是大表的字段,应该建立索引;
5、索引应该建在选择性高的字段上;
6、索引应该建在小字段上,对于大的文本字段甚至超长字段,不要建索引;
7、复合索引的建立需要进行仔细分析;尽量考虑用单字段索引代替: A、正确选择复合索引中的主列字段,一般是选择性较好的字段; B、复合索引的几个字段是否经常同时以AND方式出现在Where子句中?单字段查询是否极少甚至没有?如果是,则可以建立复合索引;否则考虑单字段索引; C、如果复合索引中包含的字段经常单独出现在Where子句中,则分解为多个单字段索引; D、如果复合索引所包含的字段超过3个,那么仔细考虑其必要性,考虑减少复合的字段; E、如果既有单字段索引,又有这几个字段上的复合索引,一般可以删除复合索引;
8、频繁进行数据操作的表,不要建立太多的索引;
9、删除无用的索引,避免对执行计划造成负面影响; 以上是一些普遍的建立索引时的判断搜索依据。一言以蔽之,索引的建立必须慎重,对每个索引的必要性都应该经过仔细分析,要有建立的依据。因为太多的索引与不充分、不正确的索引对性能都毫无益处:在表上建立的每个索引都会增加存储开销,索引对于插入、删除、更新操作也会增加处理上的开销。另外,过多的复合索引,在有单字段索引的情况下,一般都是没有存在价值的;相反,还会降低数据增加删除时的性能,特别是对频繁更新的表来说,负面影响更大

分享到:
评论

相关推荐

    基于索引的SQL优化之降龙十八掌(一)

    降龙十八掌内功的入门基础,建立索引常用的规则如下: 1、表的主键、外键必须有索引; 2、数据量超过300的表应该有索引; 3、经常与其他表进行连接的表,在连接字段上应该建立索引; 4、经常出现在Where子句中的字段...

    管理信息系统课程设计超市收银信息管理系统

    然后,进行概念设计,建立实体关系模型(ER图),并转化为逻辑设计,也就是创建数据库表结构。在物理设计阶段,要考虑数据存储的效率,设置完整性约束,并可能需要编写存储过程和触发器以实现特定的业务逻辑。最后,...

    不规则三角网(TIN)生成的算法

    3. **建立索引**:根据数据点的坐标建立分块索引的线性链表。 4. **剖分**:将数据区域的凸闭包剖分为两个超三角形。 5. **数据点插入**:按照建立的数据链表顺序将数据点插入到超三角形中。 - 找到包含数据点的...

    计算机二级考试-数据库知识.doc

    建立索引的步骤如下:在表设计器中,单击"索引"标签,在索引名列输入"部门号",在类型列选择"主索引",在表达式列输入"部门号",在排序列使箭头向上,然后点击"确定"按钮,保存表结构。 4. 建立表间的永久联系 ...

    MYSQL数据库的索引、视图、触发器、游标和存储过程[收集].pdf

    创建前缀索引(如仅对字符列的前几个字符建立索引)可以节省存储空间,语法为:`index_col_name[(length)]`。 【MySQL视图(View)】 视图是虚拟的表,基于一个或多个表的查询结果,它不存储实际数据,而是根据...

    Nodejs实现自动清理elasticsearch过期索引(日志清理)

    在上述链接的文章中,作者提供了实现这一功能的源码,主要步骤如下: 1. **连接Elasticsearch**:使用像`elasticsearch`这样的Node.js库,可以方便地与ES集群建立连接。通过`Client`对象,你可以执行各种ES操作,如...

    为数据库建立索引

    总的来说,理解如何为数据库建立索引是提升应用程序性能的关键。合理使用索引可以减少全表扫描,加快查询速度,特别是对于频繁进行复杂查询的应用,效果更为明显。然而,索引也会占用额外的存储空间,并可能影响数据...

    access上机操作题.pdf

    在考生文件夹下,数据库文件中建立表“学生”,表结构如下: * 设置“编号”字段为主键; * 设置“年龄”字段的有效性规则为:年龄大于20并且小于35; * 在“学生”表中输入以下2条记录: 同样的操作也可以应用于...

    Mysql初级语法大全

    - **column_name**:需要建立索引的列的名称。 - **length**:索引的长度,通常用于 VARCHAR 类型的列,以提高索引效率。 示例: ```sql CREATE INDEX idx_name ON customer (name(10)); ``` 此命令将基于 `...

    oracle全文检索使用说明

    5. **分区**:对于大型数据集,分区可以提高全文检索的性能,通过将数据划分为多个部分并分别建立索引来实现。 6. **查询优化**:CONTAINS是Oracle Text的主要查询操作,它支持逻辑运算符(如AND、OR、NOT)以及...

    数据库与数据表操作.pdf

    注意:不能在数据类型为 text、ntext 和 image 的列上建立索引。使用 DROP INDEX 语句删除索引,语句格式为:DROP INDEX <表名.索引名>。注意:DropIndex 语句能够删除 Create Index 语句所建立的索引,但是它不能...

    Lucene 原理与代码分析完整版.pdf

    创建索引的具体步骤如下: - **第一步**:准备要索引的原文档。 - **第二步**:将原文档传给分词器进行词法分析,分解成一个个词元。 - **第三步**:将得到的词元传递给语言处理组件,进行词干化、去除停用词等操作...

    Access数据库程序设计上机操作练习题

    (1)在考生文件夹下,"Access1-1.mdb"数据库文件中建立表"学生",表结构如下: * 编号(主键) * 学号 * 姓名 * 性别 * 出生日期 (2)设置"编号"字段为主键; (3)设置"年龄"字段的有效性规则为:大于20并且...

    全文自动检索系统中的快速检索与索引文件压缩算法

    有序单词搜索树是一种多路搜索树,其结构规则如下: 1. 树的各级子树的顺序反映单词构成的字母顺序。 2. 每棵子树至少含有两个分支。 3. 根节点和内部节点不存储单词,仅存储叶节点,每个叶节点对应一个唯一单词。 4...

    计算机二级VisualFoxPro上机考试题库与答案解析59.docx

    2. 建立索引: 在orders表上建立一个普通索引,索引名为nf,索引表达式为"year(签订日期)"。这可以通过在表设计器的“索引”选项卡中设定,或者在命令行输入如下命令: ``` INDEX ON year(签订日期) TAG nf ``` 3. ...

    Oracle优化常用概念.pptx

    每种方式的特点和工作原理如下: * nested loop:使用条件:任何连接优点:当有高选择性索引或进行限制性搜索时效率比较高,能够快速返回第一次的搜索结果缺点:当索引丢失或者查询条件限制不够时,效率很低;当表...

    db2数据库常用命令

    具体参数解析如下: - `CREATE DATABASE`:创建一个新数据库。 - `DB2_GCB`:指定创建的数据库名称。 - `ON G:`:指定存储位置为G盘。 - `ALIAS DB2_GCB`:设置别名为DB2_GCB。 - `USING CODE SET GBK`:设置数据库...

    Struts2+Hibernate实现新闻发布系统

    为了优化查询效率,可能会对经常用于搜索或排序的字段建立索引。 **文件名称列表分析** 虽然给定的文件名称列表只有一个:"hbirnate",这可能是指Hibernate的配置文件或者是与Hibernate相关的目录。在实际项目中,...

    最新Lucene教程

    Ø Lucene中的类主要组成如下: 1)org.apache.1ucene.analysis语言分析器,主要用于的切词Analyzer是一个抽象类,管理对文本内容的切分词规则。 2)org.apache.1uceene.document索引存储时的文档结构管理,类似于...

    数据库表命名规范.pdf

    索引是提高数据库查询效率的重要手段,其命名规则如下: - **格式固定**:索引名遵循`IDX_table_<column>_<column>`格式,其中`table`代表建立索引的表名,`column`代表索引涉及的字段名。 - **长度限制**:索引名...

Global site tag (gtag.js) - Google Analytics