rails+psql:如何搜索包含数百万行的表

vkc1a9a2  于 2021-06-15  发布在  ElasticSearch
关注(0)|答案(0)|浏览(215)

我有一个postgresql数据库表,其中存储了所有系统日志。目前,该表有大约550万行。这是它的结构:

create_table "app_logs", force: :cascade do |t|
    t.bigint "admin_id"
    t.datetime "received_at"
    t.datetime "created_at"
    t.datetime "updated_at"
    t.string "admin_name"
    t.string "event_type"
    t.jsonb "event_data"
    t.string "trackable_type"
    t.integer "trackable_id"
    t.index "date(received_at)", name: "index_activity_logs_date_received_at"
    t.index ["admin_id"], name: "idx_18712_index_activity_logs_on_admin_id"
    t.index ["event_type"], name: "index_activity_logs_on_event_type"
    t.index ["received_at"], name: "index_activity_logs_on_received_at"
    t.index ["trackable_type", "trackable_id"], name: "index_activity_logs_on_trackable_type_and_trackable_id"
  end

这就是我尝试从表中检索数据的方式(尝试的结果是一个错误-响应/返回数据太长):

@data = AppLog
        .by_event_type(params[:event_type])
        .by_admin(params[:admin_id])
        .by_date_from(params[:logs_from])
        .by_date_to(params[:logs_to])
        .page(params[:page]).per(100)
        .order('received_at DESC')

我能用rails+postgresql(和适当的索引)来管理这样的结构吗?还是更适合(和可伸缩的)专注于第三方解决方案,比如elastic?

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题