【问题标题】:How to create a index for an mysql TEXT column using rails 3?如何使用 rails 3 为 mysql TEXT 列创建索引?
【发布时间】:2012-01-30 12:01:00
【问题描述】:

如何使用 rails 3 为 mysql 列创建索引?

根据this

索引 BLOB 或 TEXT 列时,必须指定前缀 索引的长度。

如何使用 Rails 3 实现同样的目标

【问题讨论】:

    标签: mysql ruby-on-rails ruby-on-rails-3.1 indexing


    【解决方案1】:

    在迁移中你可以这样做:

    add_index(:table_name, :column_name, :length => 10)
    

    http://api.rubyonrails.org/classes/ActiveRecord/ConnectionAdapters/SchemaStatements.html#method-i-add_index - 了解更多详情

    【讨论】:

      【解决方案2】:

      为什么要创建索引?您是否打算在此列上添加 where 子句?如果是这样,我强烈建议不要这样做,因为从长远来看它会削弱您的应用程序。改用搜索引擎,例如

      1. sphinx via thinking sphinx
      2. solr

      【讨论】:

      • 多么无用的评论。在许多情况下,文本列上的索引是完全合理的。示例:URL 需要文本(长度 > 255),并且通常(相等)选择它们以查找重复项。数据库索引非常快,不需要诸如词干提取之类的搜索引擎功能,并且添加其他服务的复杂性使您的想法成为反模式。
      • 这个答案通常是错误的,也没有回答问题。
      猜你喜欢
      • 2011-02-22
      • 2011-05-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-09
      • 2020-02-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多