`
yangyou230
  • 浏览: 1652000 次
文章分类
社区版块
存档分类

建立索引常用的规则

 
阅读更多
1、表的主键、外键必须有索引;

2、数据量超过300的表应该有索引;

3、经常与其他表进行连接的表,在连接字段上应该建立索引;

4、经常出现在Where子句中的字段,特别是大表的字段,应该建立索引;

5、索引应该建在选择性高的字段上;

6、索引应该建在小字段上,对于大的文本字段甚至超长字段,不要建索引;

7、复合索引的建立需要进行仔细分析;尽量考虑用单字段索引代替:

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

分享到:
评论

相关推荐

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

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

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

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

    Mysql面试过关!(详解:索引+常用引擎+常见问题+sql调优)

    3、索引失效场景(补充:以下在实际应用中并不会一定导致索引失效,基于mysql不同版本的优化规则) 3.1 在联合索引的场景下,查询条件不满足最左匹配原则 3.2 索引列参与了运算,会导致全表扫描,索引失效(除主键...

    最新Lucene教程

    1、analysis对需要建立索引的文本进行分词、过滤等操作 2、standard是标准分析器 3、document提供对Document和Field的各种操作的支持。 4、index是最重要的包,用于向Lucene提供建立索引时各种操作的支持 5、...

    文件搜索工具 FileLocator Pro 8.5 Build 2912 + x64.zip

    搜索结果则可以保存,尽管对文件名搜索的速度不及 Everything ,但是在 Microsoft筛选包 的支持下可以不建立索引对多种常用及不常用格式的文档进行快速全文搜索。 文件搜索工具 FileLocator Pro 中文多语特别版 ...

    常用MFC和API函数

    常用MFC和API函数 索引 CArchive类:用于二进制保存档案 CBitmap类:封装Windows的图形设备接口(GDI)位图 CBrush类:封装图形设备接口(GDI)中的画刷 CButton类:提供Windows按钮控件的功能 CByteArray类:该类...

    数据库设计及使用规范.pdf

    如果开发过程中需要建立索引,需要提交书面的更改请求,说明所需索引 的定义(名称、字段列表、顺序、索引类型)以及建立的理由。数据库管理员 统一维护索引并将提交的请求更改。 6. 数据库各表的初始数据(包含各代码...

    电商网站商品信息爬虫.zip

    使用java+httpclient+httpcleaner,多线程、分布式爬去电商网站商品信息,数据存储在hbase上,并使用solr对商品建立索引,使用redis队列存储一个共享的url仓库;使用zookeeper对爬虫节点生命周期进行监视等。 爬虫...

    SQL性能优化

    建立索引常用的原则如下: 1. 表的主键、外键必须有索引 2. 数据量超过 1000 行的表应该有索引 3. 经常与其它表进行连接的表,在边接字段上应建立索引 4. 经常出现在 where 子句中的字段且过滤性极强的,特别是大表...

    SQL Server维护

    目录 SQL Server维护 1 ...3. 其他的一些常用的修复命令 154 1. DBCC CHECKDB 154 2. DBCC CHECKTABLE 155 4.数据库日志损坏的修复 155 5. 数据库质疑的一般处理 156 6.还原数据库到指定时间点 156

    轻量级JAVA实时业务风控系统框架.zip

    背景 当前互联网企业存在很多业务风险,有些风险(比如薅羊毛)虽然没有sql注入漏洞利用来的直接,但是一直被羊毛党、刷单党...建议在mongodb聚合的维度上建立索引,这样可以使用内存计算,速度较快。 redis性能优于mo

    数据库设计规范(3).doc

    5 3.9 函数(Function)的命名规则 5 3.10 索引(Index) 命名规范 5 3.11 约束(Constraint) 命名规范 5 4 数据模型产出物规范 5 附录A:xml文件使用说明 7 附录B:保留关键字 8 编写目的 本文的目的是提出针对Oracle...

    数据库系统概述.doc

    熟练掌握:定义基本表、建立索引。 基本掌握:用SQL语句表达嵌套查询。 初步掌握:定义视图、查询视图。 第5章 查询优化和并发控制 【考试目的】 考核考生对查询优化的策略、方法和步骤理解和掌握的情况以及对并发...

    数据库系统原理期末考试简答题.docx

    一、简答题 1、什么是数据与程序的物理独立性?...建立索引是加快查询速度的有效手段,数据库索引类似于图书后面的索引,能快速定位到需要查询的内容,用户可以根据应用环境的需要在基本表上建立一个或者多个

    入门学习Linux常用必会60个命令实例详解doc/txt

    这些设备名称的命名都是有规则的,可以用“推理”的方式把设备名称找出来。例如,/dev/hda1这个 IDE设备,hd是Hard Disk(硬盘)的,sd是SCSI Device,fd是Floppy Device(或是Floppy Disk?)。a代表第一个设备,通常IDE...

    数据库设计经验谈.pdf

    11 分解字段用于索引 11 键设计 4 原则 11 别忘了索引 11 不要索引常用的小型表 12 不要把社会保障号码(SSN)或身份证号码(ID)选作键 12 不要用用户的键 12 可选键(候选键)有时可做主键 13 别忘了外键 13 第 4 ...

    利用JAVA的JFinal模块建立的爬虫代理IP池(proxy_pool).zip

    遵守规则: 为避免对网站造成过大负担或触发反爬虫机制,爬虫需要遵守网站的robots.txt协议,限制访问频率和深度,并模拟人类访问行为,如设置User-Agent。 反爬虫应对: 由于爬虫的存在,一些网站采取了反爬虫措施...

    高性能动态SQL Oracle数据安全 Oracle 数据库的聚簇技术 等等

    Oracle字段上建立并使用索引 29 用Windows脚本宿主自动化Oracle工具 31 进程结构和内存结构 32 Oracle监控数据库性能的SQL汇总 36 Oracle如何精确计算row的大小 38 PL/SQL编程 39 数据库的分组问题 41 oracle知识 42...

    数据库设计重、难点.doc

    在常用的连接属性和选择属性上建立 索引,可显著提高查询效率。 7.5.1 影响物理设计的因素 7.5.2 选择存取方法 7.5.3 设计存储结构 1) 减少访盘冲突,提高I/O的并行性 2) 分散热点数据,均衡I/O负荷 3) 保证关键...

Global site tag (gtag.js) - Google Analytics