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

Ruby on Rails、ActiveRecord、二进制搜索

  •  0
  • Stefan  · 技术社区  · 16 年前

    create_table :my_table, :id => false do |t|
       t.string :key_column
       t.string :value_column
    end
    

    按以下字段进行二分查找:key?

    2 回复  |  直到 16 年前
        1
  •  2
  •   Mike Woodhouse    16 年前

    CREATE INDEX my_index ON my_table ( key_column );
    

    add_index(:my_table, :key_column)
    

    数据库索引通常使用二分查找,使用 B-trees

    MyTable.find_by_key_column('ABC123')
    

    SELECT * FROM my_table WHERE (key_column = 'ABC123')
    

    行存储不应该成为单个行检索的问题,这是幸运的,因为无论如何你都无法控制它。对于MySQL的性能,您可能应该选择MyISAM而不是InnoDB作为存储引擎,前提是您对“最佳”的定义不包括“最可靠”。

        2
  •  1
  •   user37011    16 年前

    如何