没有索引也能够高速查询

仓储系统有张表,4000万数据,依照创建时间清理。创建时间上没有索引,只是数据是依照创建时间一条条的insert的。这样就写了个脚本依照id升序每次处理2000个,然后删除掉。这样仅仅要扫描到的数据满足时间条件,速度和有索引是一样的。一旦处理到不满足时间条件的数据,整个sql就会超时了,这样就不再处理,第二天再处理了满足条件的。没有索引一样快。

时间: 2024-11-09 03:11:33

没有索引也能够高速查询的相关文章

lucene查询索引之Query子类查询——(七)

0.文档名字:(根据名字索引查询文档) 1. 提取获取InsexSearch 与 处理结果的公共代码 //IndexReader IndexSearcher public IndexSearcher getIndexSearcher() throws Exception{ // 第一步:创建一个Directory对象,也就是索引库存放的位置. Directory directory = FSDirectory.open(new File("D:\\temp\\index"));// 磁

SQL Server创建复合索引时,复合索引列顺序对查询的性能影响

说说复合索引 写索引的博客太多了,一直不想动手写,有一下两个原因:一是觉得有炒剩饭的嫌疑,有兄弟曾说:索引吗,只要在查询条件上建索引就行了,真的可以这么暴力吗?二来觉得,索引是个非常大的话题,很难概括出所有的情况,你不整出点新意来,倒是有抄袭照搬的嫌疑 既然写了,就写一点稍微不一样的东西出来,好了,废话打住,开搞 /* 20160814备注:今天发现一个类似的文章:http://www.cnblogs.com/fly_zj/archive/2012/08/11/2633629.html : 可以

lucene-5.1.0 索引的创建与查询 demo

lucene以及solr作为索引工具已经被广泛使用,以前项目中也有用到过lucene4.x,如今lucene版本已经到5.1了,再次了解一下,来写个demo! 首先附一下文档及下载地址: a:下载地址 Lucene下载 b:文档地址 lucene API 所需jar包(只附lucene相关jar): lucene-analyzers-common-5.1.0.jar lucene-core-5.1.0.jar lucene-queries-5.1.0.jar lucene-queryparser

高速查询hive数据仓库表中的总条数

Author: kwu 高速查询hive数据仓库中的条数.在查询hive表的条数,通常使用count(*).可是数据量大的时候,mr跑count(*)往往须要几分钟的时间. 1.传统方式获得总条数例如以下: select count(*) from ods.tracklog; 执行时间为91.208s 2.与关系库一样hive表也能够通过查询元数据来得到总条数: select d.NAME,t.TBL_NAME,t.TBL_ID,p.PART_ID,p.PART_NAME,a.PARAM_VAL

mysql 通过使用联全索引优化Group by查询

/*SELECT count(*) FROM (*/ EXPLAIN SELECT st.id,st.Stu_name,tmpgt.time,tmpgt.goutong FROM jingjie_students st RIGHT JOIN ( SELECT * FROM _goutong gttime,( SELECT name_id nameid, max(time) time FROM t_goutong GROUP BY name_id) gt WHERE gttime.name_id=

一步一步跟我学习lucene(18)---lucene索引时join和查询时join使用示例

了解sql的朋友都知道,我们在查询的时候可以采用join查询,即对有一定关联关系的对象进行联合查询来对多维的数据进行整理.这个联合查询的方式挺方便的,跟我们现实生活中的托人找关系类似,我们想要完成一件事,先找自己的熟人,然后通过熟人在一次找到其他,最终通过这种手段找到想要联系到的人.有点类似于"世间万物皆有联系"的感觉. lucene的join包提供了索引时join和查询时join的功能: Index-time join 大意是索引时join提供了查询时join的支持,且IndexWr

索引对单个表查询的影响

[索引对单个表查询的影响] 索引对单个表查询的影响 索引被用来快速找出在一个列上用一特定值的行.没有索引,MySQL不得不首先以第一条记录开始并然后读完整个表直到它找出相关的行.表越大,花费时间越多. 如果表对于查询的列有一个索引,MySQL能快速到达一个位置去搜寻到数据文件的中间,没有必要考虑所有数据.如果一个表有1000 行,这比顺序读取至少快100倍.注意你需要存取几乎所有1000行,它较快的顺序读取,因为此时我们避免磁盘寻道. 例如对下面这样的一个student表: 这样,我们试图对它进

【转】使用索引为什么能提高查询速度?

为什么能够提高查询速度? 索引就是通过事先排好序,从而在查找时可以应用二分查找等高效率的算法. 一般的顺序查找,复杂度为O(n),而二分查找复杂度为O(log2n).当n很大时,二者的效率相差及其悬殊. 举个例子: 表中有一百万条数据,需要在其中寻找一条特定id的数据.如果顺序查找,平均需要查找50万条数据.而用二分法,至多不超过20次就能找到.二者的效率差了2.5万倍! 在一个或者一些字段需要频繁用作查询条件,并且表数据较多的时候,创建索引会明显提高查询速度,因为可由全表扫描改成索引扫描. (

mybatis的sql语句导致索引失效,使得查询超时

mybaitis书写sql需要特别注意where条件中的语句,否则将会导致索引失效,使得查询总是超时.如下语句会出现导致索引失效的情况: with test1 as (select count(C_FUNDACCO) val,'a' v from TINF_REQUEST a where a.C_FUNDCODE = #{cFundcode} and a.D_DATADATE = #{dDatadate}), test2 as (select count(C_FUNDACCO) val,'a'