mysql - 表的列中的所有值都可以无限制吗?
问题描述
我正在尝试通过查询获取客户使用的产品的产品 ID,
select
v.product_id
from
TableA as v
join
TableB as f
on
v.id = f.id
where
f.product_name = "<some_name>"
and
f.customer_id = "<id>"
注意:product_id 是 TableA 的主键
匹配条件的行可能太多,在最坏的情况下,它可能是表中列的整个值。
可以在没有任何限制运算符的情况下执行查询吗?当获得的结果集太大时,我如何知道我运行的查询是安全的(即不产生 OOM 类问题)?
编辑
这是我getMySQLConnection
的代码的一部分
String url = "jdbc:mysql://" + host + ":" + port + "/" + dbname;
String clazz = "org.gjt.mm.mysql.Driver";
Driver driver = (Driver) Class.forName(clazz).newInstance();
DriverManager.registerDriver(driver);
return DriverManager.getConnection(url, user, pwd);
诸如GET
可以传输大约 2-8kb 的请求之类的东西(据我所知)。可以通过此 url 连接传输的最大数据大小(即结果集数据)是多少?
解决方案
您不应该在查询中使用限制。否则,您将无法获得整个产品列表。只有当您的网站上只有一位客户时才会发生最坏的情况。
推荐阅读
- r - R使用R在现有的excel工作簿之间插入新的excel表
- angular - 如何在 VS2019 中使用 eslint 设置 angular12?
- openssl - index.html.sxg google 签名交换验证失败
- java - 从 InputStream 读取时,Android Socket BufferedReader readLine() 不起作用
- debugging - Gdb 以十六进制打印长值,而无需猜测长度
- javascript - 如何在悬停时在导航中获得此边框底部?
- node.js - 在 Puppeteer 版本 10.1.0 中启用 Chrome 扩展
- vb.net - 在引号内剪切字符串
- mongodb - Mongodb:如何返回字符串数量的列表?
- java - 无法在 ubuntu 中运行 hawkbit Eclipse/hawkbit 代码