前端之家收集整理的这篇文章主要介绍了
php – 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);
所以,这就是为什么我需要知道我的$查询字符串可以有多长,因为数组$uol_Metadata_arr可能包含很多项.
>(如果可能)使用WHERE元数据IN(‘value1′,’value2’)
>您可能需要
增加
max_allowed_packet.它默认为16MB(客户端,在旧版本中低至1MB服务器端),并且构建一个超出该限制的
查询并不困难(例如,导入数据)来自其他地方的巨型INSERT
查询)
LIKE’%string%’是一个性能杀手.此类查询无法在该列上使用索引.另一方面,像’字符串%’,is indexable