Hello Simon !  

Here it's: (database size 5GB, run twice)  

squilu time-create-index.nut
Total number of records??? 11290493
Time spent counting the table items??? 0.070402
Time spent reading the table items??? 20.6519
Time spent indexing the table items??? 43.1917
Time difference indexing - reading =??? 22.5398  

squilu time-create-index.nut 
Total number of records??? 11290493
Time spent counting the table items??? 0.051606
Time spent reading the table items??? 20.7647
Time spent indexing the table items??? 43.0528
Time difference indexing - reading =??? 22.2881  

?  

program:  

SQLite3.config_single_thread();

local db = SQLite3("hacker-news-items.db");

db.exec_dml("PRAGMA synchronous = OFF;");

db.exec_dml("drop index if exists items_user_idx;");

local start_time = os.clock();
print("Total number of records", db.exec_get_one("select count(*) from
items;"));
local time_spent_counting = os.clock() - start_time;
print("Time spent counting the table items", time_spent_counting);

db.exec_dml("begin;");

start_time = os.clock();
local stmt = dbprepare("select id, by from items");

while(stmt.next_row())
{
??? local id = stmt.col(0);
}
stmt.finalize();

local time_spent_reading = os.clock() - start_time;
print("Time spent reading the table items", time_spent_reading);

start_time = os.clock();
db.exec_dml("CREATE INDEX items_user_idx ON items(\"by\");");

local time_spent_indexing = os.clock() - start_time;
print("Time spent indexing the table items", time_spent_indexing);

print("Time difference indexing - reading =", time_spent_indexing -
time_spent_reading);


db.exec_dml("commit;");

db.close();  

?  
>  Sat Mar 19 2016 09:56:44 PM CET from "Simon Slavin"
><slavins at bigfraud.org>  Subject: Re: [sqlite] SQLite big tables create index
>in parallel
>
>  On 19 Mar 2016, at 8:54pm, Domingo Alvarez Duarte
><sqlite-mail at dev.dadbiz.es> wrote:
> 
>  
>>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 ?
>> 

>  Use the SQLite shell tool.
> Use the '.timer ON' command.
> Write a command to read every row of the table. Time the command
> Write a command to create a new index. Time the command.
> Subtract one from the other.
> 
> 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