[英]Fetching few records from mysql database having million entries
我有一個有百萬行的表。 它將用戶ID作為主鍵。 我有一個包含500個用戶ID的數組。
我想從表中選擇用戶ID在數組中的所有記錄。 我知道一種方法是將數組更改為字符串並通過傳遞字符串來運行IN查詢。
但我認為這不是有效的方法。 親切地建議其他方式。
我假設你的id是整數。 也許你從其他一些來源獲得這個ID列表,以便在mysql端加入不是所需的解決方案。 如果是,則查找500 Ids列表中的最大和最小ID。 你可以在php端做到這一點。 當你有max和min值時,用一個where clause
查詢mysql db
select ...
from table_name
where min_id <= id and id <= max_id
id
是主鍵,因此優點是它已經被索引。
我過去做過這個,我不確定我的方法是最有效的。
我用ids創建一個字符串:其中id = a或id = b或id = c ...
然后我在它前面添加select語句,然后做一個fetchall。
我的猜測是你從另一個表中獲取這些用戶ID,並將它們存儲在一個數組中。 如果這是正確的,那么您應該更改獲取這些用戶ID的查詢,以便它使用連接。
聯接將幫助你,因為IN()不是一個好的編程實踐。 您可以在這里了解加入 : http : //mysqljoin.com/
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.