大数据量的表是如何设计的?

php_wsd 2011-03-09 03:33:59
讨论一下:大数据量的表是如何设计的?以提高查询速度的
如:我的产品表有千万级的数据量,放在同一张表里面,现在进行一次模糊查询,要花很久的时间;不知道大家是如何解决这样的问题?
...全文
281 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
Atai-Lu 2011-03-11
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 falizixun2 的回复:]

引用 9 楼 luxu001207 的回复:

另外,如果分区视图你用了标识(自动编号)列的话,没法直接对分区视图使用insert/update操作,只能select


不知道你说的这些方法适合其他数据库吗。比如MYSQL,PG,ORACLE?
[/Quote]
对其它数据库没研究过这方面的问题,不过我认为,能作为大型数据库来用的数据库,应该都会有这类机制的,不然这些数据库还远远称不上大型数据库,顶多也就跟access一个级别罢了
kaifadi 2011-03-10
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 luxu001207 的回复:]

另外,如果分区视图你用了标识(自动编号)列的话,没法直接对分区视图使用insert/update操作,只能select
[/Quote]

不知道你说的这些方法适合其他数据库吗。比如MYSQL,PG,ORACLE?
Atai-Lu 2011-03-09
  • 打赏
  • 举报
回复
另外,如果分区视图你用了标识(自动编号)列的话,没法直接对分区视图使用insert/update操作,只能select
Atai-Lu 2011-03-09
  • 打赏
  • 举报
回复
如果你的分区视图还让数据库查询所有表才给你返回结果,那就说明你设计的不合理

用全文索引的话,你数据更新的时候,要更新全文索引,不然的话你是搜不出来的

另外,如果你用lucenc的话,也是一样要更新索引
php_wsd 2011-03-09
  • 打赏
  • 举报
回复
还有一个地方:这些产品在页面上显示的时间按更新时间排序的,这个更新时间会变的,由客户刷新产品的时候,改变的。如果按照你这样折分表的话,那查询一次,不是所以表都查询一次,然后再输出
php_wsd 2011-03-09
  • 打赏
  • 举报
回复
对了,表中还有一种情况:一个客户可能会重复发名称相似的产品,我查询出来只能显示一条记录,这样时间就更长了,你这种方法也合适这种吗?
php_wsd 2011-03-09
  • 打赏
  • 举报
回复
谢谢楼上,我先看一下
Atai-Lu 2011-03-09
  • 打赏
  • 举报
回复
我得意的看了下我那已有550万条记录的表的查询效率:
以下是第 1261-1290 项,本次搜索共用时 62 毫秒
flyerwing 2011-03-09
  • 打赏
  • 举报
回复
[Quote=引用楼主 wangsdong 的回复:]
讨论一下:大数据量的表是如何设计的?以提高查询速度的
如:我的产品表有千万级的数据量,放在同一张表里面,现在进行一次模糊查询,要花很久的时间;不知道大家是如何解决这样的问题?
[/Quote]
建索引什么的,大虾说了,数据量不到一千都完全没必要使用微型或者小型数据库,
in0512 2011-03-09
  • 打赏
  • 举报
回复
小手一抖,一分到手
Atai-Lu 2011-03-09
  • 打赏
  • 举报
回复
首先说查询的问题:
你数据量这么大,你弄全文索引吧,要不用lucenc做搜索,如果你用like或charat查询,那肯定是慢的要死

然后说下表设计的问题:
你可以考虑使用分区视图,把一个表拆分成N个结构一样的表,通过分区视图串联起来
可以参考:http://msdn.microsoft.com/zh-cn/library/ms190019.aspx

如果还不行,你甚至可以考虑分数据库,分服务器……

28,409

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧