代码之家  ›  专栏  ›  技术社区  ›  Unknown

Sqlite用于磁盘备份关联阵列?

  •  1
  • Unknown  · 技术社区  · 16 年前

    这是个好主意吗?我担心每次执行以下操作时都必须解析SQL:

    数据库[“someindex”] 必须翻译成

    从db中选择值,其中index='someindex' 而这又必须被翻译成SQL内部语言。

    4 回复  |  直到 16 年前
        1
  •  5
  •   andri    16 年前

    如果您担心SQL开销,并且只需要一个简单的关联数组,那么像GDBM或Berkeley DB这样的dbm亲戚可能是一个不错的选择?

        2
  •  1
  •   Martin Beckett    16 年前

    查看sqlite参数以获得一种简单的方法<->sql

        3
  •  1
  •   Brian Campbell Dennis Williamson    16 年前

    SQLite作为一个基于磁盘的关联数组应该非常快。记住使用 prepared statements ,它一次解析和编译您的SQL,然后被多次调用;它们对 SQL injection attacks . 如果您这样做,您应该可以从SQLite获得相当好的性能。

    对于简单的基于磁盘的关联数组,另一种选择是文件系统;这是一种非常流行的基于磁盘的关联数组。在文件系统上创建一个目录,每个条目使用一个键。如果您需要超过几百个,那么每两个字符的密钥前缀创建一个目录,以使每个目录的文件数保持合理的小。如果您的密钥作为文件名不安全,那么使用SHA-1或SHA-256之类的方法对它们进行哈希处理。

        4
  •  0
  •   Evert    16 年前

    这取决于你的实际问题。您的问题陈述非常通用,并且高度依赖于哈希表的大小。

    对于小型哈希表,您只打算读写一次,实际上您可能更喜欢文本文件(便于调试)。