在mysql中查询的长度是否有限制?

我问这个问题是因为我需要在我的PHP脚本中生成 SELECT 查询时知道此限制,并且此查询中的 WHERE 部分是在循环内生成的。

恰好看起来像这样

 $query="SELECT field_names FROM table_name WHERE ";

$condition="metadata like \"%$uol_metadata_arr[0]%\" ";

for($i=1; $i<count($uol_metadata_arr); $i++){

$condition.=" OR metadata like \"%$uol_metadata_arr[$i]%\" ";

}

$query.=$condition;

$result=mysql_query($query);

因此,这就是为什么我需要知道我的 $ query 字符串可以有多长的原因,因为数组 $ uol_metadata_arr 可以包含许多项目。

回答:

  1. (如果可能)使用 WHERE metadata IN ('value1', 'value2')
  2. 您可能需要增加max_allowed_pa​​cket。它默认为16MB(客户端,在旧版本中为低至1MB服务器端),构造一个不超过此限制的查询并不难(例如,使用巨大的INSERT查询从其他地方导入数据)

LIKE '%string%'是性能杀手。这样的查询不能在该列上使用索引。 LIKE

'string%'另一方面,是可索引的

以上是 在mysql中查询的长度是否有限制? 的全部内容, 来源链接: utcz.com/qa/405746.html

回到顶部