Can you post your DDL to go along with your DML? -----Original Message----- From: Allen Weeks [mailto:[EMAIL PROTECTED] Sent: Thursday, August 21, 2003 4:51 PM To: Jesse Sheidlower; Cybot Cc: [EMAIL PROTECTED] Subject: RE: Slow results with simple, well-indexed query
The only thing I can add is check you hardware and OS platform. Cheers -----Original Message----- From: Jesse Sheidlower [mailto:[EMAIL PROTECTED] Sent: Thursday, August 21, 2003 11:44 AM To: Cybot Cc: [EMAIL PROTECTED] Subject: Re: Slow results with simple, well-indexed query On Thu, Aug 21, 2003 at 06:01:31PM +0200, Cybot wrote: > Jesse Sheidlower wrote: > > >I'm struggling with speed issues on some queries that > >I would have expected to be relatively fast. Perhaps > >even more frustratingly, when I've tried to break > >these down into their components, they still execute > >very slowly. I've looked over all the relevant suggestions > >for optimization and so forth, and there's nothing I can > >tell that I'm missing. > > > >An example of a query is to get all the words (the cg.cw > >field) in a particular alphabetical range that have been > >added in some timespan (the sref.cd field). The cg table > >has about 3M rows, and the sref table about 70,000; the > >intervening tables are all indexed on the relevant id > >fields: > > > >----- > >mysql> SELECT cg.cw FROM cg,q,cit,sref > > -> WHERE cg.q_id = q.id AND q.cit_id = cit.id AND cit.sref_id = sref.id > > -> AND cg.cw BETWEEN 't' AND 'tzzz' > > -> AND sref.cd > DATE_SUB(CURDATE(), INTERVAL 6 MONTH) > > move your DATE before cw > > AND sref.cd > DATE_SUB(CURDATE(), INTERVAL 6 MONTH) > AND cg.cw BETWEEN 't' AND 'tzzz' > > cause "sref.cd > DATE_SUB(CURDATE(), INTERVAL 6 MONTH)" should be faster > than "cg.cw BETWEEN 't' AND 'tzzz'" and so the total rows are already > limited when "cg.cw BETWEEN 't' AND 'tzzz'" will be executed I assume that the optimizer would take care of this, but in any case I gave it a try and it made no difference. > also you can try an index with a length of 2 or 3 over cg.cw, this will > result in smaller index and possible speed up things I also tried this (the current index is 25 characters on a 100-character field), and if anything it made things slower. Anyone have any other ideas or analysis? Thanks very much. Jesse Sheidlower -- 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] -- MySQL General Mailing List For list archives: http://lists.mysql.com/mysql To unsubscribe: http://lists.mysql.com/[EMAIL PROTECTED]