Hi Serg
On 25/05/2009, at 8:16 PM, Sergei Golubchik wrote:
> On May 25, Arjen Lentz wrote:
>> I mean, if I do a query about 1 table on an information schema table,
>> then mysqld will first run through all tables in all databases,
>> prouduce the temporary table of everything (most likely on disk), and
>> then run my query on it.
>
> Depends on the query. If you do a query about 1 table on an
> information
> schema table, like, for example, SELECT ... FROM I_S.TABLES WHERE
> SCHEMA_NAME='d1' AND TABLE_NAME='t1' - MySQL will not run through all
> tables in all databases. It'll open d1/t1.frm directly. Or may not do
> even that, for example for SELECT TABLE_NAME FROM ... - it doesn't
> need
> to open frm, it's enough to verify that the frm file exists.
Cognitive dissonance for me there.
Is your statement above based on looking at the source code, or a
presumption of how it works?
If the latter, can you please take a peek at the actual code and
confirm?
Thanks
There might be another bug there, causing things to be horrendously
slow.
Cheers,
Arjen.
--
Arjen Lentz, Director @ Open Query (http://openquery.com)
Affordable Training and ProActive Support for MySQL & related
technologies
Follow our blog at http://openquery.com/blog/
OurDelta: free enhanced builds for MySQL @ http://ourdelta.org