全部產品
Search
文件中心

Tablestore:使用SQL查詢資料時報錯The sql scanned rows of main table exceeds the quota, main table rows quota is 100000

更新時間:Jun 30, 2024

當使用SQL查詢資料出現掃描到的行數或者資料量超過限制的情況時,您可以根據具體的查詢條件建立二級索引或多元索引來最佳化查詢。

問題現象

使用SQL查詢資料時出現如下報錯:

[Message]:The sql scanned rows of main table exceeds the quota, main table rows quota is 100000

可能原因

如果使用SQL查詢資料時使用的條件為非分區鍵,則會造成全表掃描資料,可能會出現掃描到的行數或者資料量超過限制的情況。

重要

目前SQL單次掃描支援的最大行數為100000行,最巨量資料量為128 MB,最長時間為30秒。

解決方案

使用SQL查詢資料時,請確保查詢條件包含主鍵列且符合最左匹配原則,並為SQL語句添加limit參數來控制返回的行數。

如果查詢條件不滿足上述條件,您還可以通過如下方式進行查詢加速。更多資訊,請參見索引選擇策略

  • 如果通過建立二級索引即可符合查詢條件包含主鍵列且符合最左匹配原則,則建議您建立二級索引進行查詢加速。更多資訊,請參見二級索引介紹

  • 如果查詢條件中包括彙總函式(例如count、sum、avg)、group by或者基於非主鍵的過濾查詢,則建議建立多元索引進行查詢加速。更多資訊,請參見多元索引簡介

    如果已為資料表建立多元索引仍出現該錯誤,建議檢查多元索引中是否包含所有查詢時用到的欄位。