【问题标题】:database index and memory usage数据库索引和内存使用
【发布时间】:2010-12-03 12:56:33
【问题描述】:

假设我有一个表,它在一个列字段中存储了 1 亿条大小不一的字符串记录,最多 20 个字符。我需要索引这个列,我只有一台 2GB-Ram 的机器,这足以执行这样的任务吗? mysql推荐db引擎来存储吗?

【问题讨论】:

  • 你有时间限制吗?
  • 你的意思是一开始就足够建立索引,还是使用索引来做查询?
  • @Remus:时间限制很宽松,不超过 24 小时 @leonm:我的意思是两个

标签: sql mysql database-design optimization indexing


【解决方案1】:

如果您有 2 GB 的主内存,那么是的,您应该能够毫无问题地构建索引;虚拟内存是个好东西,DBMS 很可能会安排将数据溢出到磁盘。

如果您只有 2 GB 的磁盘空间,则没有足够的空间用于数据和索引。


不出所料,它是 2 GB 的主内存,而不是 2 GB 的磁盘(该评论主要是在开玩笑 - 但现在,如果有人说 256 GB,不清楚他们是否指的是磁盘空间或主内存;它可以是任何一个)。

是的,如果 DBMS 无法在该约束内创建索引,则不值得称为 DBMS。

MySQL 可能可以胜任。这不是我推荐的,但由于是替代(商业)DBMS 的开发人员之一,我在这方面非常有偏见。我们没有足够的关于您的预算等信息,无法提供可靠的建议。

【讨论】:

  • 如果你有 2GB 的磁盘空间,你可能应该松开盒子 X-)
【解决方案2】:

数据库的设计方式通常允许它们处理比可用 RAM 更多的数据。给它更多的工作内存会加快速度,但它应该能够建立索引并对其执行搜索。

【讨论】:

    猜你喜欢
    • 2021-10-30
    • 2019-08-09
    • 1970-01-01
    • 1970-01-01
    • 2011-07-06
    • 2017-05-27
    • 2011-01-01
    • 2010-10-24
    • 2011-08-23
    相关资源
    最近更新 更多