set session optimizer_switch='derived_merge=off';
SELECT a.*, b.* FROM
( SELECT TABLE_SCHEMA, TABLE_NAME, TABLE_ROWS
FROM information_schema.TABLES t
WHERE TABLE_SCHEMA NOT IN ('information_schema','performance_schema','mysql','sys')
AND TABLE_TYPE = 'BASE TABLE'
AND TABLE_ROWS >= 10000 ) AS a
LEFT JOIN ( SELECT TABLE_SCHEMA,
TABLE_NAME FROM information_schema.TABLE_CONSTRAINTS c
WHERE CONSTRAINT_TYPE = 'PRIMARY KEY'
) AS b USING (TABLE_SCHEMA, TABLE_NAME)
WHERE b.TABLE_NAME IS NULL
ORDER BY TABLE_ROWS DESC;
ERROR 3566 (HY000): Access to native function 'internal_table_rows' is rejected.
set session optimizer_switch='derived_merge=off,derived_condition_pushdown=off';
SELECT a.*, b.* FROM
( SELECT TABLE_SCHEMA, TABLE_NAME, TABLE_ROWS
FROM information_schema.TABLES t
WHERE TABLE_SCHEMA NOT IN ('information_schema','performance_schema','mysql','sys')
AND TABLE_TYPE = 'BASE TABLE'
AND TABLE_ROWS >= 10000 ) AS a
LEFT JOIN ( SELECT TABLE_SCHEMA,
TABLE_NAME FROM information_schema.TABLE_CONSTRAINTS c
WHERE CONSTRAINT_TYPE = 'PRIMARY KEY'
) AS b USING (TABLE_SCHEMA, TABLE_NAME)
WHERE b.TABLE_NAME IS NULL
ORDER BY TABLE_ROWS DESC;
+--------------+------------------+------------+--------------+------------+
| TABLE_SCHEMA | TABLE_NAME | TABLE_ROWS | TABLE_SCHEMA | TABLE_NAME |
+--------------+------------------+------------+--------------+------------+
| employees | dept_emp2 | 331008 | NULL | NULL |
| employees | emp2 | 299590 | NULL | NULL |
| employees | salaries2 | 2837194 | NULL | NULL |
| employees | salaries4_up_20w | 249796 | NULL | NULL |
| employees | t11_1 | 99450 | NULL | NULL |
| employees | t_group4 | 2615040 | NULL | NULL |
| employees | t_group5 | 2165088 | NULL | NULL |
| test | history | 30020 | NULL | NULL |
+--------------+------------------+------------+--------------+------------+
這樣,解決了這個奇葩問題。
新特性固然很好,但是還需要檢驗和掌握對應問題的解決方案,如果不是8.0.22版本碰到這個問題,也可以利用修改SQL的方法解決該問題。
這個問題在8.0.23已得到修復。
我的新一輪的SQL 優化課 即將在春節後開課
我是知數堂SQL 優化班老師~ ^^
如有關於SQL優化方面疑問和一起交流的請加 並且 @兔子@知數堂SQL優化
高性能MySQL,SQL優化羣 有葉金榮,吳炳錫 兩位大神坐鎮 :579036588
歡迎加入 知數堂大家庭。
我的微信公衆號:SQL開發與優化(sqlturning)
掃碼直達寶藏課程
本文分享自微信公衆號 - 老葉茶館(iMySQL_WX)。
如有侵權,請聯繫 [email protected] 刪除。
本文參與“OSC源創計劃”,歡迎正在閱讀的你也加入,一起分享。