gpt4 book ai didi

mysql - 我可以有几个 'similar' 数据库表来减少检索时间吗

转载 作者:行者123 更新时间:2023-11-29 00:24:22 24 4
gpt4 key购买 nike

最好用一个具体的例子来解释我的问题。

考虑一个餐厅用来接收客户订单的订单管理应用程序。我有一个名为 orders 的表,其中存储了所有订单。

现在,表格的大小每天都在增加,但访问的数据量是恒定的。一般来说,餐厅只对最近一天左右收到的订单感兴趣。例如,100 天后,“有趣”的数据大约只有表大小的 1/100; 1 年后是 1/365 等等。

当然,我想保留所有旧订单,但只对当前订单感兴趣的应用程序的性能不断降低。那么,不让旧数据干扰“有趣”数据的最佳方法是什么?

根据我有限的数据库知识,我想到的一个解决方案是在同一个数据库中有两个相同的表 - order_present 和 order_past。新订单将进入“order_present”,而 cron 作业会将所有超过两天的已处理订单转移到“order_old”,同时保持“order_present”的大小不变。

这是否被认为是处理此问题的可接受解决方案。还有哪些其他解决方案?

最佳答案

数据库服务器非常擅长处理大量数据。但是性能可能会受到物理硬件的限制。如果是 IO 延迟困扰您,可以使用多种解决方案。您确实需要评估最适合您的用例的内容。

例如:

  1. 你可以Partition表以将其分布到多个物理磁盘上。
  2. 你可以做到Sharding将数据放到不同的物理服务器上
  3. 您可以使用另一个 Storage Engine 进行评估最适合您的数据和应用程序。与 InnoDB 相比,MyISAM 以较少的 ACID 合规性为代价提供了更好的读取性能
  4. 你可以使用Read Replicas将所有(大多数)“选择”查询委托(delegate)给主数据库服务器(主)的副本(从属)

最后,MySQL Performance Blog是有关此主题的重要资源。

关于mysql - 我可以有几个 'similar' 数据库表来减少检索时间吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19646956/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com