2 yubangqi yubangqi 于 2016.03.16 23:38 提问

一千万数据,查询优化 15C

数据结构
Id ShopId GoodsId
1 1 1
2 1 2
3 1 3
4 1 4
5 1 5
6 2 1
7 2 2
8 2 4
9 2 5

    有一千万记录,需要取出拥有商品 2,3,4 的所有店铺

  现在直接sql里面筛选,速度50s左右,请各位大神给个优化思路

3个回答

caozhy
caozhy   Ds   Rxr 2016.03.16 23:45

对GoodsId列做索引

zhangjs712
zhangjs712   2016.03.17 10:12

对GoodsId列做索引,使用in 查询,然后看执行计划,应该是会用上索引的

yubangqi
yubangqi 所有的商品都包含,不是其中一个就行
2 年多之前 回复
tangys623656350
tangys623656350   2016.03.17 11:24

http://www.open-open.com/lib/view/open1403571505983.html 这个上面详细的说明了如果优化千万极数据查询

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
提高mysql千万级大数据SQL查询优化几条经验(1)
本文主要内容: 1:查询语句where 子句使用时候优化或者需要注意的 2:like语句使用时候需要注意 3:in语句代替语句 4:索引使用或是创建需要注意 假设用户表有一百万用户量。也就是1000000.num是主键 1:对查询进行优化,应尽量避免全表扫描,首先应考虑在where及order by 涉及的列上创建索引。 因为:索引对查询的速度有着至关重要的影响。 2:尽量避免
mysql千万级数据量根据索引优化查询速度
(一)索引的作用 索引通俗来讲就相当于书的目录,当我们根据条件查询的时候,没有索引,便需要全表扫描,数据量少还可以,一旦数据量超过百万甚至千万,一条查询sql执行往往需要几十秒甚至更多,5秒以上就已经让人难以忍受了。 提升查询速度的方向一是提升硬件(内存、cpu、硬盘),二是在软件上优化(加索引、优化sql;优化sql不在本文阐述范围之内)。 能在软件上解决的,就不在硬件上解决,毕竟硬件提升代码昂贵,性价比太低。代价小且行之有效的解决方法就是合理的加索引。 索引使用得当,能使查询速度提升上万倍,效果惊人。
百万数据查询优化海量数据查询优化
百万数据查询优化海量数据查询优化海量数据查询优化海量数据查询优化
给一千万个数据量的文件排序
#include #include #include #include #include #include #include #include #include #include #include #define MAXN 5000000 #define RST(N)memset(N, 0, sizeof(N)) using namespace std; typedef u
对一千万条数据进行排序---编程珠玑第二版 第一章
本书第一章提出了一个看似简单的问题,有最多1000万条不同的整型数据存在于硬盘的文件中,如何在1M内存的情况下对其进行尽可能快的排序。 每个数字用4byte,1M即可存储250 000个数据,显然,只要每次对250 000个数据排序,写入到文件中即可,重复40次。 那么如何选出每次遍历的二十五万条数据呢?有如下两个策略: 1、对一千万条数据遍历40次,第i次遍历时,判断数是否属于
MSSQLServer中大数据量表的查询优化
MSSQLServer中大数据量表的查询优化 MSSQLServer中大数据量表的查询优化
SQL优化,百万级2张表关联,从40分钟到3秒的历程
表结构如下:   CREATE TABLE `deviceback` (     `id` int(11) NOT NULL AUTO_INCREMENT,     `imei` varchar(100) NOT NULL COMMENT '手机唯一标识',     `mid` varchar(50) DEFAULT NULL,     `mac` varchar(100
11如何给1千万个数据量的磁盘文件排序
问题描述: 输入:给定一个文件,里面含有多个不重复的正整数,其中每个数都小于等于n,并且正整数的总个数小于n,n=10^7。 输出:得到按从小到大升序排列的包含所有输入的整数的列表。 条件:最多有大约1MB的内存空间可用,但磁盘空间足够。且要求运行时间在5分钟以下,10秒为最佳结果。   一:位图法     因为所有整数均不重复,所以,考虑位图法。位图法就是当且仅当整数i在文件中存在时
百万级数据查询优化之in
1)使用IN查询连续的数,没毛病,数度非常快 2)当使用IN查询不连续的数 3)使用UNION优化
一亿行删除或修改一千万行的思路总结
要在一个1亿行的大表中,删除1千万行数据        在对数据库其他应用影响最小的情况下,以最快的速度完成        那么操作期间应该注意什么?如果中途中断了,有木有方法再继续?        如果应用不可停,又该怎么办呢?        删除了10分之一的数据,索引可能还需重建,统计信息可能也得更新        由于昂贵的delete操作,Undo空间亚历山大、Redo log 也要担心