前些时候,一位颇高级的程序员居然问我什么叫做索引,令我感到十分的惊奇,我想这绝不会是沧海一粟,因为有成千上万的开发者(可能大部分是使用MySQL的)都没有受过有关数据库的正规培训,尽管他们都为客户做过一些开发,但却对如何为数据库建立适当的索引所知较少,因此我起了写一篇相关文章的念头。最普通的情况,是...
分类:
数据库 时间:
2015-01-13 17:36:28
阅读次数:
169
第一,MongoDB索引和MySQL索引非常相似并且对于MySQL的索引优化有很多也适用于MongoDB。
第二,更重要的是,这些索引的建议对你的应用提高也是有限的。
对于应用的最佳索引策略应该基于很多的重要因素。包含了你期望查询的类型,
数据读取与写入的比率,甚至于你服务器的空闲内存。意思就是,
需要对线上的产品做很多的测试剖析工作,才能调整出最佳的索引策略...
分类:
数据库 时间:
2015-01-13 14:24:32
阅读次数:
319
和所有的秘笈一样,最后一招都会又回到起点,最后我们来讨论一下是否需要建立索引,也许进行全表扫描更快。
在大多数情况下,全表扫描可能会导致更多的物理磁盘输入输出,但是全表扫描有时又可能会因为高度并行化的存在而执行的更快。
如果查询的表完全没有顺序,那么一个要返回记录数小于10%的查询可能会读取表中大部分的数据块,这样使用索引会使查询效率提高很多。
但是如果表非常有顺序,那么如果查询的记录数大于...
分类:
数据库 时间:
2015-01-12 09:17:40
阅读次数:
178
系统是Windows server 2003。ElasticSearch是一个基于Lucene的稳定的、分布式、RESTFul的搜索引擎。其实所谓的RestFul就是它提供URL供你调用(建立索引和进行检索),不过直接这样使用实在是太凶残了。所以,它也提供了一系列client包,相当于将curl请求...
分类:
Web程序 时间:
2015-01-10 23:31:43
阅读次数:
565
数据库使用-oracle索引的创建和分类
索引是数据库中一种可选的数据结构,她通常与表或簇相关。用户可以在表的一列或数列上建立索引,以提高在此表上执行 SQL
语句的性能。就像本文档的索引可以帮助读者快速定位所需信息一样,Oracle
的索引提供了更为迅速地访问表数据的方式。正确地使用索引能够显著的减少磁盘 I/O。
Oracle 提供了多种类型的索引,可以互为补充地提升查询性能:
· ...
分类:
数据库 时间:
2015-01-07 18:50:08
阅读次数:
219
索引的选择性低,但数据的值分布差异很大时,仍然可以利用索引提高效率。
A、数据分布不均匀的特殊情况下,选择性不高的索引也要创建。
表ServiceInfo中数据量很大,假设有一百万行,其中有一个字段DisposalCourseFlag,取值范围为枚举值:[0,1,2,3,4,5,6,7]。
按照前面说的索引建立的规则,“选择性不高的字段不应该建立索引”,
该字段只有8种取值,索引值的重复率...
分类:
数据库 时间:
2015-01-06 09:59:52
阅读次数:
207
1、表的主键、外键必须有索引;
2、数据量超过300的表应该有索引;
3、经常与其他表进行连接的表,在连接字段上应该建立索引;
4、经常出现在Where子句中的字段,特别是大表的字段,应该建立索引;
5、索引应该建在选择性高的字段上;
6、索引应该建在小字段上,对于大的文本字段甚至超长字段,不要建索引;
7、复合索引的建立需要进行仔细分析;尽量考虑用单字段索引代替:
A、正确选...
分类:
数据库 时间:
2015-01-05 09:28:05
阅读次数:
212
在我们平常的SQL查询中,其实我们有许多应该注意的原则,以来实现SQL查询的优化,本文将为大家介绍30条查询优化原则。首先应注意的原则1.对查询进行优化,应尽量避免全表扫描,首先应考虑在where及order by涉及的列上建立索引。2.应尽量避免在where子句中对字段进行null值判断,否则将导...
分类:
数据库 时间:
2015-01-04 17:03:39
阅读次数:
270
系统是Windows server 2003。ElasticSearch是一个基于Lucene的稳定的、分布式、RESTFul的搜索引擎。其实所谓的RestFul就是它提供URL供你调用(建立索引和进行检索),不过直接这样使用实在是太凶残了。所以,它也提供了一系列client包,相当于将curl请求...
分类:
Web程序 时间:
2015-01-02 20:59:54
阅读次数:
638
1、mysql索引(基础与规则)索引规则:一、MySQL建表,字段需设置为非空,需设置字段默认值。二、MySQL建表,字段需NULL时,需设置字段默认值,默认值不为NULL。三、MySQL建表,如果字段等价于外键,应在该字段加索引。四、MySQL建表,不同表之间的相同属性值的字段,列类型,..
分类:
数据库 时间:
2015-01-02 07:34:42
阅读次数:
303