这样的需求不知大家有什么方式可以实现?

yanyongshan 发布于 2010/06/11 16:50
阅读 158
收藏 1

门面表有10万条数据,请问下面的这种需求如何解决才能速度在1秒钟之内知道结果?

select * from 门面表 where

行业 in(行业1,行业2,行业3,行业4,行业5,行业6) and

区域 in(区域1,区域2,区域3,区域4,区域5) and

面积 between 面积1 and 面积2 and

租金 between 租金1 and 租金2 and

地段 in(地段1,地段2,地段3,地段4)  and

转让费 between 转让费1 and 转让费2

加载中
0
红薯
红薯

首先确保 IN 里面不是子查询,是一些固定的数值。

然后下面这六个字段分别建索引:行业、区域、面积、租金、地段、转让费

10万条数据,如果数据库服务器不是太差的话,1秒钟根本不是问题。

另外,该表的如果包含大文本等字段,可能会导致查询尽管很快,但读数据很慢

最后对这个结果进行缓存,同样的搜索条件下次直接从缓存中出数据。

0
yanyongshan
yanyongshan

门面表:

门面编号,行业,区域,面积,租金,地段

求租门面需求表:

用户      满足的行业         选址区域      面积区间

user1     行业1,行业2     区域5,区域6     50-90

user2     行业6,行业2     区域9,区域10     50-90

user3     行业6,行业2     区域9,区域10     60-65

1.需求:根据用户user1的需求去门面表中找适合的门面 如:user1

select * from 门面表 where

行业 in(行业1,行业2) and

区域 in(区域5,区域6) and

面积 between 面积1 and 面积2

2.还有一个需求:

现在出现了一个门面,需要看看哪些求租者需要

门面1,行业2,区域10,面积=60  找出对应的求租者

0
鉴客
鉴客

user 字段也要做索引。

0
wolf2999
wolf2999

红薯能否解释下缓存这里,不太清楚。 

0
yanyongshan
yanyongshan

引用来自#5楼“wolf2999”的帖子

红薯能否解释下缓存这里,不太清楚。 

1,也许是指使用在mysql层面上的查询缓存

2,可能指的是将查询结果存入memcached,缓存起来,如果有相同的sql,直接去memcache取出

0
wx---每日佳选
wx---每日佳选

好像sphinx可以做这个事吧。

返回顶部
顶部