我有一个相当大的表,有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.
那么这是明智的还是我只是让查询更耗时?
$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.我希望这些转向一个空间.