几千万条 access 数据库记录想用 PHP 来做数据检索系统,有什么好方案?

2015-05-19 15:49:14 +08:00
 phpcxy

情况是这样的:
1.有2009-2015的产品销售记录都保存在access里面的,每月一个mdb文件大概有400万条;
2.每个表有50多个字段,没有做任何的外键关联的设计,例如省字段直接记录广东、市直接记录广州等等这样的形似;
3.现在想做一个检索系统可以根据不同条件查询数据库记录,举例:查询2013年10月到2014年3月的某个产品型号某个厂家的销售记录;
4.只在本地内网访问系统即可。

目前的想法是:
1.重新设计数据库表,规格、省市等等的做一个外键
2.按照年份来分表
3.用mysql保存

但是遇到的困难是数据量比较大好像一般的机子都吃不消,很难说服客户去买高配点的服务器。
性能也是比较成问题,刚才在开发环境(vagrant虚拟机 CentOS MySQL5.5 1G内存)上弄了100多W(没建索引)的数据做一下查询已经会出现time out了。

所以想请教下,我这样的需求有没有更优的方案呢?

2871 次点击
所在节点    问与答
7 条回复
funky
2015-05-19 15:52:38 +08:00
用lucene
mhycy
2015-05-19 15:58:19 +08:00
编写一个程序,用于把access数据库的数据导入到mysql,并支持按年增量添加数据
用mysql查数据,建好索引,不用外键
可考虑把省市区之类的中文记录变成一个map用id搜索
yahoo21cn
2015-05-19 16:08:01 +08:00
几千万条做个索引就行,一般的pc就能用,不索引啥机器都扛不住。
zhenglee
2015-05-19 16:49:40 +08:00
access -> mssql < - asp.net
lvfujun
2015-05-19 17:11:35 +08:00
@yahoo21cn 建索引+1
建议按日期分表每5个月分一个表(怎么分自己决定).
用检索算法可以参考快速排序法的思想写一个检索类.
然后建索引.普通机器不说秒查吧.肯定不会慢.
msg7086
2015-05-19 23:07:30 +08:00
不建索引硬搜?一定是钱太多用不完了…
phpcxy
2015-05-20 08:56:40 +08:00
现在想部署在一台linux机器上,发现linux读取access数据库挺麻烦的

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/192222

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX