簡體   English   中英

簡單查詢大表后連接丟失

[英]Lost connection after simple query for a big table

我正在運行兩個表的復雜 LEFT JOIN 查詢。

Table A - 1.6 million rows
Table B - 700k rows.

所有列都被索引。

我嘗試了不同的調試,但沒有成功找到問題,因為我猜這不是太多數據。

無論如何,我發現如果刪除查詢中的“WHERE”子句沒有問題但是當我在表 A 上嘗試這個簡單的查詢時 - 它返回“丟失的連接”。

SELECT id FROM table_A ORDER BY id LIMIT 10
  1. 運行此查詢的最佳做法是什么? 我不想超過超時。
  2. 我的表是否太大,我應該“清空”舊數據還是什么?
  3. 您如何處理具有數百萬行和 JOINS 的大表? 我所知道的只是索引,我已經這樣做了。

一百萬行——不是問題; 十億行——然后就變得有趣了。 你的桌子不是“太大”。

“所有列都被編入索引。” -- 通常是一個錯誤。 在評論哪些索引有用之前,我們需要查看實際查詢。

可能您需要一個“復合”索引。

SELECT id FROM table_A ORDER BY id LIMIT 10 -- 如果有一個以id開頭的索引,它幾乎會立即返回。 請提供SHOW CREATE TABLE table_A以便我們可以看到架構。

暫無
暫無

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

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