Data_fetching_approaches.md
Translated by ChatGTP
Mysql 數據抓取方式
有關真正的 sql 執行,請參閱“比較數據抓取結果”注。
正常抓取(沒有連接、條件)
通常有三種方法來獲取表格數據。
- 一次選擇整個表格
- 當數據量巨大時不適用。
- 根據 limit 和 offset 分段數據
- 當 offset 很大時會很慢,因為 MySQL 需要計算 offset 位置。
- 通常用於分頁。
- 根據主鍵範圍進行分段
- 由於鍵,快速排序的分塊數據。
- 不能知道分塊大小。
複雜條件搜索和快速條件搜索
當搜索查詢緩慢且匹配的數據量很大時,按塊抓取所有數據可能會非常緩慢。
可以使用“EXPLAIN”來查看查詢是否知道為什麼慢,因為它使用主索引,然後 MySQL 必須計算每行是否匹配條件。
臨時表
一種防止使用“主索引”的方法是創建一個臨時表來存儲整個條件結果,然後從臨時表中獲取結果。
但這種解決方案只適用於特定條件,如果數據量不夠大,或者查詢實際上很快,那麼臨時表方法可能比正常的分塊抓取方法更慢。