I have a table with a few million rows, wth 633 columns.  I want to 
create 10 inidices on this table, six single-column and four two-column 
inidices.  The database will be loaded once and remain static, and 
queried many times.  Please note that this is a "small" prototype for 
the actual database, which will have 40 times more rows.

I used two strategies to create these tables:

1.  Create the indices in the "create table" statement
2.  Load the table, and then use the "create index" statement for each 
index.

With Strategy 1, the loading started nicely  using the "load data 
infile" command to load approx. 2000 records at a time.  It took 3 
seconds for each "load data infile" command.  After a few hundred "load 
data infile" commands, however, the time increased to two minutes per 
command.

With Strategy 2, the loading went from start to finish at 3 seconds for 
each "load data infile" command.  But now, creating each index is taking 
longer.  Here is a log:

Fri Sep 20 15:17:43 CDT 2002 create index objId on bestTsObj (objId)
Fri Sep 20 15:35:51 CDT 2002 create index fieldId on bestTsObj (fieldId)
Fri Sep 20 15:56:02 CDT 2002 create index targetObjId on bestTsObj 
(targetObjId)
Fri Sep 20 16:20:02 CDT 2002 create index ra on bestTsObj (ra)
Fri Sep 20 16:49:16 CDT 2002 create index decl on bestTsObj (decl)
Fri Sep 20 17:53:38 CDT 2002 create index u on bestTsObj (u)
Fri Sep 20 18:42:52 CDT 2002 create index g on bestTsObj (g)
Fri Sep 20 22:04:25 CDT 2002 create index r on bestTsObj (r)
Sat Sep 21 10:06:44 CDT 2002 create index i on bestTsObj (i)
Sat Sep 21 19:31:52 CDT 2002 create index z on bestTsObj (z)
Sun Sep 22 15:45:06 CDT 2002 create index ug on bestTsObj (u,g)


The first index was created in a reasonable amount of time (18 minutes), 
but it is taking longer to create more indices.


With both strategies, no process is swapping heavily, and mysqld is not 
consuming available CPU cycles efficiently.

Can you suggest how I can build multiple indices on large tables 
efficiently?  Will it help to create a "narrow" table with only the 
quantities I want to use in indices?

We have installed mysql via rpm:
bash-2.04$ mysqladmin
mysqladmin  Ver 8.18 Distrib 3.23.36, for redhat-linux-gnu on i386

bash-2.04$ uname -r
2.4.18-xfs-1.1
bash-2.04$ 

What diagnostics do you suggest I run?

Thanks









---------------------------------------------------------------------
Before posting, please check:
   http://www.mysql.com/manual.php   (the manual)
   http://lists.mysql.com/           (the list archive)

To request this thread, e-mail <[EMAIL PROTECTED]>
To unsubscribe, e-mail <[EMAIL PROTECTED]>
Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php

Reply via email to