Bug #120267 SHOW FULL COLUMNS on every table upon DB connection
Submitted: 14 Apr 10:48
Reporter: Max Sheehan Email Updates:
Status: Open Impact on me:
None 
Category:MySQL Workbench Severity:S2 (Serious)
Version:8.0.46 OS:Any
Assigned to: CPU Architecture:Any

[14 Apr 10:48] Max Sheehan
Description:
When you connect to a MySQL DB older than 8.0 (e.g. 5.6) or a deviation of MySQL (which still has MyISAM support), the Workbench takes an incredible amount of time doing "SHOW FULL COLUMNS FROM ..." on every table in that schema.

Either because it's the Default Schema in the Connection, you double-click on it in the tree, or "USE schema;".

This causes all tables to be opened on the server and can take up to 10 seconds per table, and it also causes insert performance impact in our production environments. Until the server resources are freed up.

It seems to have something to do with the server having an old/different performance_schema model (which also can be turned off completely).

This still happens even if the following preferences are turned off, as they have been mentioned elsewhere to cause this:
"Show Schema Contents in Schema Tree"
"Show Metadata and Internal Schemas"
"Enable Code Completion in Editors"

This was reported in #99417 (5 years ago), and there are many more bugs that sound similar.

In the meantime, due to the impact this has caused, we will be looking at alternative client tools and hope to be able to come back to WB in the future.

How to repeat:
Connect to a DB with many tables that has performance_schema turned off or is not MySQL 8.0. While it's lagging, open the Client Connections tab.

Suggested fix:
Don't scan all tables in the schema at once.
Or write a local persistent cache. Saving the need to do this every time you restart the application.