Hello Simon !  

Thanks for reply !  

When you say [The majority of the time in 'CREATE INDEX' is spent writing the
index, not reading the table.] where the data to spend time creating the
index come from ?


Cheers !  
>  Sat Mar 19 2016 08:13:13 PM CET from "Simon Slavin"
><slavins at bigfraud.org>  Subject: Re: [sqlite] SQLite big tables create index
>in parallel
>
>  On 19 Mar 2016, at 11:03am, Domingo Alvarez Duarte
><sqlite-mail at dev.dadbiz.es> wrote:
> 
>  
>>Would be nice if sqlite provide a way to create indexes in parallel, I mean
>> when working with big tables and creating several indexes the time spent
>> scanning the whole database/table is considerable and it's the same for
>>each
>> "create index", we could have a big time/cpu/disk seek saving if we could
>> create several indexes at the same time 
>> 

>  It actually doesn't help. The majority of the time in 'CREATE INDEX' is
>spent writing the index, not reading the table. And since the file structure
>of SQLite means that each index resides on a separate set of pages you end up
>spending more time juggling pages between caches than you would save.
> 
> If you would like to simulate what happens you can try this:
> 
> 1. CREATE tempTable copying the structure of myTable
> 2. DELETE FROM myTable
> 3. BEGIN a transaction
> 4. CREATE the indexes you want
> 5. INSERT INTO myTable SELECT * FROM tempTable
> 6. END the transaction
> 
> This is accepted to be slow in SQLite and the instructions are generally to
>do the opposite, i.e. that the order 1. 2. 3. 5. 4. 6. will be faster.
> 
> Simon.
> _______________________________________________
> sqlite-users mailing list
> sqlite-users at mailinglists.sqlite.org
> http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users
> 
>
>  



?

Reply via email to