簡體   English   中英

從具有百萬條目的mysql數據庫中獲取少量記錄

[英]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.

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