Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/60.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
什么';通过rails,mysql查询的最大大小是多少?_Mysql_Ruby On Rails_Ruby On Rails 3 - Fatal编程技术网

什么';通过rails,mysql查询的最大大小是多少?

什么';通过rails,mysql查询的最大大小是多少?,mysql,ruby-on-rails,ruby-on-rails-3,Mysql,Ruby On Rails,Ruby On Rails 3,我似乎不能很好地表达这个问题,用谷歌搜索答案 MySQL 5.1查询的最大长度是多少?此外,是否有相关的Rails 3限制 我有5000多个电子邮件地址,需要从数据库中获取相关的用户ID。我的偏好是一次完成所有任务,比如: emails = get_emails # an array of strings User.select(:id).where("email in (#{emails * ','})") 即使这对5000人有效,我想确保有一天它对50000人有效。那么查询有多大呢?如果它

我似乎不能很好地表达这个问题,用谷歌搜索答案

MySQL 5.1查询的最大长度是多少?此外,是否有相关的Rails 3限制

我有5000多个电子邮件地址,需要从数据库中获取相关的用户ID。我的偏好是一次完成所有任务,比如:

emails = get_emails # an array of strings
User.select(:id).where("email in (#{emails * ','})")
即使这对5000人有效,我想确保有一天它对50000人有效。那么查询有多大呢?如果它们不能那么大,那么下一个获得这些ID的最佳方法是什么?只是分批做同样的事情


为此,我更关心的是官方支持的限制,而不是在当前版本上工作时发生的任何事情。

您可以以“分片”的方式完成这项工作——您只需要受到内存量的限制

例如,在Object1中存储记录1..10000,在Object2中存储记录10001..20000。。。等


从这个意义上讲,rails查询长度没有限制,您可以通过“分片”的方式来实现这一点,您只需要受到内存量的限制

例如,在Object1中存储记录1..10000,在Object2中存储记录10001..20000。。。等


从这个意义上讲,rails查询长度没有限制,这取决于MySQL配置中的
max\u allowed\u数据包设置。这是MySQL服务器将接受的字节数

我同意佩卡的观点,要想知道你能做的有多大,最好的办法就是试着用假值

此外,您可以这样编写该查询:

User.select(:id).where(:email => emails)

Rails将自动执行
查询中的

取决于MySQL配置中的
max\u allowed\u packet
设置。这是MySQL服务器将接受的字节数

我同意佩卡的观点,要想知道你能做的有多大,最好的办法就是试着用假值

此外,您可以这样编写该查询:

User.select(:id).where(:email => emails)

Rails将在
查询中自动执行

最简单的方法可能是使用50000(假的)进行尝试entries@Pekka,我打算这样做,但请看最后一句。Rails没有限制,但您的数据库最终可能会遇到性能限制。最简单的方法可能是试用50000(假的)entries@Pekka,我打算这么做,但请看最后一句话。Rails没有限制,但最终可能会在数据库中遇到性能限制。