最好用具体的例子来解释我的问题。
考虑餐馆用来接收客户订单的订单管理应用程序。我有一个名为orders的表,它存储了所有这些。
现在每天桌子的大小都在增加,但访问的数据量是不变的。一般来说,餐厅只对最近一天收到的订单感兴趣。例如,100天之后,“有趣”数据仅占表格大小的1/100; 1年后它是1/365,依此类推。
当然,我想保留所有旧订单,但仅对当前订单感兴趣的应用程序的性能会不断下降。那么,没有旧数据干扰“有趣”数据的最佳方法是什么?
根据我有限的数据库知识,我遇到的一个解决方案是在同一个数据库中有两个相同的表 - order_present和order_past。新订单将进入'order_present',而cron作业会将所有超过两天的已处理订单转移到'order_old',保持'order_present'的大小不变。
这被认为是解决这个问题的可接受的解决方案。还有哪些其他解决方案?
答案 0 :(得分:1)
数据库服务器非常擅长处理卷。但性能可能会受到物理硬件的限制。如果是困扰您的IO延迟,可以使用多种解决方案。你真的需要评估什么最适合你的用例。
例如:
最后,MySQL Performance Blog是此主题的绝佳资源。