Mysql rails使查询变得更好
在我的表模式中 我将“侦听器”表连接到“设备”表(一对多) 现在我需要在listener表上搜索,但要使用devices.id字段 我的问题是2表应该有很多记录(超过1000000条),我担心我的查询会使应用程序崩溃 我的问题是在选择上 我想知道我能做些什么来改进这个查询 我对gist的全部质疑Mysql rails使查询变得更好,mysql,ruby-on-rails,performance,activerecord,Mysql,Ruby On Rails,Performance,Activerecord,在我的表模式中 我将“侦听器”表连接到“设备”表(一对多) 现在我需要在listener表上搜索,但要使用devices.id字段 我的问题是2表应该有很多记录(超过1000000条),我担心我的查询会使应用程序崩溃 我的问题是在选择上 我想知道我能做些什么来改进这个查询 我对gist的全部质疑 您需要使用kaminari或will paginate进行分页,您正在使其更加复杂这是我认为最短的形式: Listener.includes(:devices, country).where(" (li
您需要使用kaminari或will paginate进行分页,您正在使其更加复杂这是我认为最短的形式:
Listener.includes(:devices, country).where(" (listeners.name like ?) or (listeners.email like ?) or (countries.name like ?) or (listeners.city like ?) or (listeners.id in (select listener_id from devices where id = ?))", "%#{params[:sSearch]}%", "%#{params[:sSearch]}%" , "%#{params[:sSearch]}%","%#{params[:sSearch]}%","#{params[:sSearch]}").limit(limit).offset(params[:iDisplayStart]||1).order(:id)
Listener.includes(:devices, country).where(" (listeners.name like ?) or (listeners.email like ?) or (countries.name like ?) or (listeners.city like ?) or (listeners.id in (select listener_id from devices where id = ?))", "%#{params[:sSearch]}%", "%#{params[:sSearch]}%" , "%#{params[:sSearch]}%","%#{params[:sSearch]}%","#{params[:sSearch]}").limit(limit).offset(params[:iDisplayStart]||1).order(:id)