小编use*_*811的帖子

为SELECT查询添加更多特异性会使它更快吗?

我有一个相当大的表,有150,000个记录.它有很多字段,如country_id,region_id,city_id,纬度,经度,postal_code,仅举几例.

我需要根据纬度和经度从这张表中选择,没有别的.我的查询如下所示:

SELECT * FROM `mytable` 
  WHERE `latitude` = '$latitude' 
  AND `longitude` = '$longitude';
Run Code Online (Sandbox Code Playgroud)

现在虽然我从这个表中选择的唯一标准是纬度/经度,但我想知道如果添加更多特异性会加快查询速度,例如:

SELECT * FROM `mytable` 
  WHERE `city_id` = '320' 
  AND `latitude` = '$latitude' 
  AND `longitude` = '$longitude';
Run Code Online (Sandbox Code Playgroud)

对我来说,在查询中添加更多条件可以加快速度,但同时我通过首先确保选择的所有记录来自特定的城市ID,从而缩小可能结果的数量,这似乎是违反直觉的.我知道我将在接下来指定的纬度和经度范围内.

总记录可能约为150k,但距离该特定城市仅约10k.

那么这是明智的还是我只是让查询更耗时?

mysql sql

5
推荐指数
1
解决办法
345
查看次数

什么是正则表达式?

$description包含一些文本的变量也可能包含如下字符串:

!some_text_that_may_be_different_each_time!
Run Code Online (Sandbox Code Playgroud)

我需要摆脱这些,所以我试过:

$new_description = preg_replace("!.+?!", '', $description);
Run Code Online (Sandbox Code Playgroud)

但没有运气.什么是摆脱这些字符串的好方法?

删除它们可能会留出额外的空间.例如:

Hi world how are ya !asdasdasdasdasd! blue chickens
Run Code Online (Sandbox Code Playgroud)

会成为

Hi world how are ya  blue chickens
Run Code Online (Sandbox Code Playgroud)

如你所见,现在ya和之间有2个空格blue.我希望这些转向一个空间.

php regex

0
推荐指数
1
解决办法
66
查看次数

标签 统计

mysql ×1

php ×1

regex ×1

sql ×1