I started looking to what is happen to get table information from mysql.
I found that the following is issued for every table that is reflected:
2007-07-18 00:29:08,158 INFO sqlalchemy.engine.base.Engine.0x..cc show
variables like 'character_set%%'
2007-07-18 00:29:08,158 INFO sqlalchemy.engine.base.Engine.0x..cc None
2007-07-18 00:29:08,161 INFO sqlalchemy.engine.base.Engine.0x..cc SHOW
VARIABLES LIKE 'lower_case_table_names'
2007-07-18 00:29:08,161 INFO sqlalchemy.engine.base.Engine.0x..cc None
2007-07-18 00:29:08,163 INFO sqlalchemy.engine.base.Engine.0x..cc
describe `company`
2007-07-18 00:29:08,163 INFO sqlalchemy.engine.base.Engine.0x..cc {}
2007-07-18 00:29:08,169 INFO sqlalchemy.engine.base.Engine.0x..cc SHOW
CREATE TABLE `company`
I have a slow connection to the database and want to min the number of
round trips.
It look like the show variables like should not be need for every table.
The character_set_results is never set and should be constant for a
given connection. so the results of of _detect_character should be
cached at a min for the connection (I think it should also be cached
for the host/port combo unless it get set somewhere)
lower_case_table_names can only be changed on server startup. It should
be easy to cache this query and only execute it once per host/port.
The last one that can be reduce is show CREATE TABLE should have all the
information that describe has and the reflection could happen form this
command.
I would be willing to look into getting the lower_case_table_name only
once per server. (I hint as to where this might be cached)
I think the character_set_results can also be cached on per server since
we do set it.
I would be willing to look into write a patch that make the reflection
use show create table command.
The first 2 should be easy and cut done the number of round trips 1/2.
I do not see using the show create table as hard and that would cut the
number of round trips per table to 1.
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"sqlalchemy" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at
http://groups.google.com/group/sqlalchemy?hl=en
-~----------~----~----~----~------~----~------~--~---