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 sqlalchemy@googlegroups.com
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
-~----------~----~----~----~------~----~------~--~---

Reply via email to