an option for A-

no idea if this will work, but what if you moved your actual data file to new drive, 
and soft linked it from the other drive?

> -----Original Message-----
> From: Brendan J Sherar [mailto:[EMAIL PROTECTED]
> Sent: Tuesday, October 07, 2003 7:27 AM
> To: [EMAIL PROTECTED]
> Subject: Adding indexes on large tables
> 
> 
> Greetings to all, and thanks for the excellent resource!
> 
> I have a question regarding indexing large tables (150M+ rows, 2.6G).
> 
> The tables in question have a format like this:
> 
> word_id mediumint unsigned
> doc_id mediumint unsigned
> 
> Our indexes are as follows:
> 
> PRIMARY KEY (word_id, doc_id)
> INDEX (doc_id)
> 
> The heart of the question is this:
> 
> When calling ALTER IGNORE TABLE doc_word ADD PRIMARY 
> KEY(doc_id, word_id),
> ADD INDEX(doc_id), MySQL proceeds to create a working copy of 
> the table. This
> process takes over an hour to perform. During this time, disk 
> I/O for the
> rest of the database (live) reaches a bottleneck, and slows to an
> unacceptable crawl. Once the copy has been created, MySQL is 
> able to do
> the actual index build very quickly and efficiently. This process must
> occur three times daily.
> 
> A) MySQL creates these temporary tables in the same directory as the
> original datafile. Is there a way to cause it to use an alternate
> directory (i.e., on a separate mounted disk)?
> 
> B) Is there a way to "nice" this process in such a way that 
> the amount of
> I/O it consumes in performing the copy is restricted to a 
> manageable level
> so that other requests to the disks can be served in a timely fashion?
> 
> C) Would abandoning ext3 in favor of ext2 create a 
> substantial difference?
> 
> D) We're reluctant to upgrade to 4.0 at this point, but were 
> we do so, are
> there any significant gains in this situation?
> 
> E) The ALTER TABLE query is performed using perl DBI. Is there a lower
> level call available which would improve performance?
> 
> F) Any other ideas or suggestions?
> 
> The system in question has the following setup:
> 
> Dual Xeon 2.8, 4G RAM, 2 x 146GB U160 SCSI (10,000 RPM) on RAID 1
> (hardware). Redhat 8.0, 2.4.18 kernel, using ext3 fs. MySQL 
> 3.23.56, with
> myisam tables.
> 
> Relevant variables:
> 
> myisam_sort_buffer_size=512M
> tmp_table_size=128M
> This is a master, so bin_log is on
> 
> Thanks in advance for your help, and please keep up the 
> excellent work!
> 
> Best,
> Brendan
> 
> 
> 
> -- 
> MySQL General Mailing List
> For list archives: http://lists.mysql.com/mysql
> To unsubscribe:    
> http://lists.mysql.com/[EMAIL PROTECTED]
> 
> 

--
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:    http://lists.mysql.com/[EMAIL PROTECTED]

Reply via email to