关于mysql分表后引起的一系列程序问题

我们都知道当一个表数据非常大时,一般会做水平分表,但数据表这么分了之后,应用程序有麻烦了,如果我这里有 100 张按订单号后两位 hash 出来的表(00~99),这个时候要按时间(某一天内的订单)排序怎么办?关键字查询或者其它组合条件查询怎么处理?还有分页怎么处理?limit 查询怎么处理?等一系列问题。

刚进到某个项目组,准备做一些管理工具提供给运营、客服使用,比如:交易订单实时监控、日/周/月流水统计报表等数据整理的工作。在面对这样一堆很散乱的东西,该如何处理?

在此之前只接触过单表,现在想到的办法太糟糕了,感觉这些东西交给我做会很悲催的,请前辈们指点一下,谢谢。

by 一个 PHPer 菜鸟。

阅读 6k
2 个回答

这么说吧,如果数据量到达分表的规模。那么以后要查询数据就不建议采用数据库查询了。
这个时候你可以考虑采用搜索技术,针对搜索要求建立索引。
Sphinx 或者 lucene 可能是你需要去了解的东西。
像58同城、赶集网之类均有独立的团队去做自定义搜索。

对于内部使用的系统,没必要去维护一个独立的搜索引擎。
建议把需要排序的字段和主键单独拿出来做个表,在这个表做排序,详情表做查询。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题