簡體   English   中英

mysql 速度 mysql_num_rows vs 查詢限制 1

[英]mysql speed mysql_num_rows vs query limit 1

我必須檢查一個值(字符串)是否在我的數據庫中。

目前我做一個

select a.email,b.vuid from user a, verteiler_user b where a.email=\''.$email.'\' and a.kid='. $kid.' and b.vid='. $vid. ' and a.uid = b.uid

作為使用mysql_num_rows的查詢,然后檢查if >=1

但是使用限制 1 進行查詢是否更快? ? 並檢查一行是否回來了?

是的。 運行limit 1查詢會更快。 如果你所做的只是檢查一行是否存在,為什么還要返回所有這些列呢? 只需 select 1 這將(可以忽略不計)更快。 順便說一句:您的代碼看起來容易受到 SQL 注入攻擊。 考慮使用mysql_real_escape_string()或類似的 function 清理查詢的動態部分。

LIMIT 1將具有更好的性能,因為它會在滿足LIMIT時停止匹配。

如果您只期望 1 行,請將LIMIT 1添加到您的查詢中。

此外,如果您只檢查查詢中是否存在該字符串,則無需在查詢中使用帶有SELECT的列名。 只需使用SELECT 1...

你可以試試:

select count(*) from user a, verteiler_user b 
     where a.email=\''.$email.'\' and a.kid=' . $kid.' and b.vid=' . $vid . ' and a.uid = b.uid

並通過以下方式獲得計數:

$row=mysql_fetch_array(...);
if ($row[0] > 0)  // is there a hit?
   ...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM