Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/62.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql rails使查询变得更好_Mysql_Ruby On Rails_Performance_Activerecord - Fatal编程技术网

Mysql rails使查询变得更好

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

在我的表模式中 我将“侦听器”表连接到“设备”表(一对多) 现在我需要在listener表上搜索,但要使用devices.id字段

我的问题是2表应该有很多记录(超过1000000条),我担心我的查询会使应用程序崩溃 我的问题是在选择上 我想知道我能做些什么来改进这个查询

我对gist的全部质疑


您需要使用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)