Excellent.  Great explanation.  

On Monday, September 10, 2012 1:15:32 PM UTC+12, rochacbruno wrote:
>
> On Sun, Sep 9, 2012 at 9:27 PM, Andrew W <awill...@gmail.com <javascript:>
> > wrote:
>
>> (although I still don't quite really understand what a lazy table is).
>
>
> imagine you have
>
> models/db.py
>
> db = DAL(...)
> db.define_table("table1".....)
> db.define_table("table2".....)
> ...
> ...
> db.define_table("table30".....)
>
> So, for each request (I mean every time user hits an url or click on 
> something) all that 30 tables will be imeddiatelly instantiated even if the 
> requested page does not need to all the 30 tables.
>
> The process of table definition involves some logic such as instantiate a 
> new Table object, check all the fields, do migrations, check reserved 
> keywords, check the tablename atc...
>
> Now if you turn
>
> db = DAL(... lazy_tables=True)
>
> for each request web2py will just store some data in a dictionary 
> {"tablename": {"fields": ....., "options":....}, no table will be 
> instantiated ultil needed.
>
> So when in your program you do 
>
> db(db.table1),select() # in this time web2py will fire the table 
> instantiation and all the process, so it will happen only for the table you 
> need and you saved 29.
>
> Thats it.  
>
>
>

-- 



Reply via email to