> On Wed, 12 Feb 2003 15:50:29 +0300 > Artem Koutchine <[EMAIL PROTECTED]> wrote: > > > Hi! > > > > I have posted this message yerstaday, but apperantly > > did not give enough information for reader to figure out > > what's going on. So, i am reposting it with more information. > > > > I have the following table: > > > > create table law_words ( > > l_id int unsigned not null, > > w_id int unsigned not null, > > primary key (w_id, l_id) > > ); > > > > The request is: > > > > SELECT DISTINCT w0.l_id FROM law_words as w0 > > inner join law_words as w1 on w0.l_id=w1.l_id > > WHERE > > w0.w_id IN (258,282,287, 615, 1101, 1949, 1968, 3417, 3574, > > 3578, 3643,4345,4768, 5297, 5976,6133, 7243,7245, 9271, 9348, 11146, > > 11150, 11172, 11232,11847, 12542, 12859, 14811, 24839, 26653,27662) > > AND > > w1.w_id IN (405, 2017,2192, 2592, 2595, 2603, 2981, 4055, 4068, > > 4346,5755, 6480, 9384,9408, 11513, 11514, 12126, 12134, 12638, 13052, > > 13643, 13769,13836, 13945, 14154, 14693, 14867, 14980, 15518, 15557, > > 17830, 19005, 19051, 19247, 20176, 20926, 22364, 22365, 22366, 22732, > > 24668,24793, 24956, 25286, 26242, 26665, 26847, 27144, 27348, 27815, > > 28494, 30910, 31878, 32161, 33586, 34396); > > > > The basic idea is thart law_words holds index of > > words (w_id) for each law (l_id), so law can be found by words, which > > are specified by user and the their ids are looked up in > > vocabulary table. > > > > Now law_words has 228207 records and that request takes > > about 2 seconds on a pc with 1GB of RAM and dual Pentium III XEON > > 550Mhz, which is TOO MUCH! Explain shows thart mysql is > > using ' range' and primary index, and about 500 records for each > > table. > Try add index on (l_id,w_id) and see if it helps. And see if it runs faster > without distinct.
I tried adding that index - it is not used at all as shown by explain. Without DISTINCT it runs just a little faster (hundredth of a second) but i NEED distinct anyhow. Artem --------------------------------------------------------------------- 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