I have no experience with MySQL. My boss ran an optimize
against a MySQL database. Against a bunch of views we got the message
"tablexyz" is not BASE TABLE
and the next has message is
Corrupt
It seems to be only against views, we didn't get any of these error messages against the base tables.
Does this look like an incorrect error message, or do we have issues with our tables?
Best Answer
You cannot run
OPTIMIZE TABLE
against a View. I can see why the error message would beCorrupt
In mysql, a view is represented as a table in INFORMATION_SCHEMA.TABLES.
I have discussed views in this light before
However, a View in INFORMATION_SCHEMA.TABLES has
NULL
as a Storage Engine.Mar 21, 2012
: How do I get the execution plan for a view?Nov 23, 2011
: How can I define the datatype of a view in MySQL?Consequently, there must be a storage engine to optimize on. Since the Storage Engine is NULL,
Corrupt
error message is understandable. Therefore, don't be concerned with the error message. Just runOPTIMIZE TABLE
on the underlying base tables.