使用 2 的 N 次幂进行数据库优化 - 方法说明

Fut*_*tur 4 database-design

这是对分析和更好性能方法的请求,我的一位同事提出了一种优化数据库的方法,它看起来也非常令人印象深刻。有人可以让我们知道这对于下面链接中解释的场景是否是更好的方法,

数据库优化博客链接

如果有其他更好的选择,请提出建议。

小智 9

所以这个解决方案是:

  1. 在用户表中创建位数组以将用户注册到健康计划。
  2. 然后将二进制数字位置映射到健康计划表。

好处:

  1. 只需很少的存储空间,您可以在项目的整个生命周期内节省 20 美元。
  2. 尽管可能无法衡量,但更新/删除速度更快。
  3. 不按健康计划选择时更快的查询

问题:

  1. 不同计划的最大数量必须保持较小。(32 或 64,取决于字段大小)
  2. 无处存储计划开始日期、计划结束日期或您可能需要的其他相关数据。
  3. 每次使用或应用位操作时都需要解码计划。
  4. 没有快速简便的方法来执行快速链接表的通用类型查询。
  5. 在没有特殊索引和查询工具的情况下,健康计划驱动的查询(即所有“H10”计划)的查询速度较慢。

原始前提的问题:

  1. 订阅新计划/离开计划时,您只需插入或删除“已更改”记录。

    插入将添加一条新记录 ('U1',3)。

    删除只需要删除相关记录 User_Health_Plan_Mapping(U1,10)

  2. 您似乎认为数据库优化是关于最小化存储,更多的是关于以下内容。

    • 放置数据以便于理解。
    • 长期存储它(想想与它对话的 5 代代码)
    • 使数据可扩展、可支持、可搜索、可靠、安全、健壮、备份。
    • 优化整个生态系统(上市时间、开发时间、运营时间、硬件成本、业务流程、呼叫中心时间)
  3. 针对应用程序所需的特定用例优化表/索引。这与处理器能力无关,而是与索引、对硬盘的直接访问和缓存优化有关(除非您有一个可以保留在内存中的小型数据库)。

  • Java 程序员经常“发现”这个想法。数据库设计者更了解。 (2认同)