|
|
1
2
有 column-oriented databases 它以每列为基础存储数据,其中每列都是自己的索引。它们非常适合数据仓库,因为它们读取速度极快,但更新速度相当慢。 Kickfire 就是这样一个例子,它是一个定制的MySQL引擎 TPC-H benchmark 以令人印象深刻的系统成本,连续数周获得顶级冠军。请注意,Kickfire是一种设备,作为硬件盒出售。 Infobright 这将是另一个类似的例子,并且有一个免费的 community edition |
|
|
2
1
当一个表有太多的索引需要创建时,我通常会求助于全文搜索。但我不能说它是否适合你的情况。 |
|
|
3
0
SInce数据仓库通常针对读取数据而不是写入数据进行优化,我会考虑简单地对所有列进行索引。是的,这会减缓将数据放入仓库的速度,但通常发生在非高峰时段,每天只发生一次或更少。 |
|
|
4
0
人们应该只考虑引入基于SQL表的“自制”索引结构,作为最后的手段,即如果仍然存在无法用传统索引设置正确处理的[业务上合理的]查询情况。例如,如果这些索引的列表变得太大等等。
不 如果c或d不是非常合理的搜索条件(很少使用),并且如果它们的宽度会给a+b索引带来过重的负担(或者如果有其他列更适合“附加”到a+b指数上),则引入带有a、b和c(或和d或两者)的索引。 除了对磁盘存储的明显额外需求外,额外的索引虽然可能有助于SELECT(读取)操作,但也可能成为CUD(创建/更新/删除)操作的障碍。这里的上下文似乎类似于数据仓库,很少发生[未计划的]CUD操作,但最好记住这一点。 看 SQLite Optimizer 以深入了解SQLite如何确定特定查询的执行方式。
制作索引列表
实际列表 以下各项所需的指标:
在这种情况下,我发现 手写的树形结构 一个有用的工具,可以帮助管理原本无法管理的可能组合列表。假设从问题中指出的50列中最多选择4个搜索条件,我们有超过230000个组合需要考虑。..这棵树有助于很快修剪。 |
|
|
blogger13 · 视频租赁店数据库的规范化 1 年前 |
|
|
ì¤ì¤í · 为什么LEFT INNER JOIN被弃用? 1 年前 |
|
|
relatively_random · 确保两个表之间一致的共同参考 1 年前 |
|
|
Grenish Rai · Firestore错误“用户文档不存在” 1 年前 |
|
|
Saijo-Shi · PLpgsql中的更新触发器 1 年前 |
|
Dante · Django::配置不当:池不支持持久连接 1 年前 |
|
YouLocalRUser · 删除重复行,保留第一行 2 年前 |