I am using mysql 4.0.1-alpha on Linux 2.4.18, the info you requested is: select count(*) from newsentries10 where playerid=28575 and type=2; +----------+ | count(*) | +----------+ | 4218 | +----------+ 1 row in set (13.81 sec)
mysql> select count(*) from newsentries10 where playerid=28575 and type=2; +----------+ | count(*) | +----------+ | 3705 | +----------+ 1 row in set (9.72 sec) mysql> select count(*) from newsentries10 where type=2; +----------+ | count(*) | +----------+ | 611932 | +----------+ 1 row in set (9.92 sec) mysql> explain select straight_join pn.timestamp,ne.viewpoint,pn.id,pn.type,ne.type,ne.newsid,ne.hidestamp from newsentries10 ne, pnews pn where ne.playerid=28575 and ne.type=2 and pn.newsid=ne.newsid; +-------+--------+-----------------------+---------+---------+-----------+-- ------+------------+ | table | type | possible_keys | key | key_len | ref | rows | Extra | +-------+--------+-----------------------+---------+---------+-----------+-- ------+------------+ | ne | ALL | list_news,delete_news | NULL | NULL | NULL | 774878 | where used | | pn | eq_ref | PRIMARY | PRIMARY | 4 | ne.newsid | 1 | | +-------+--------+-----------------------+---------+---------+-----------+-- ------+------------+ 2 rows in set (0.01 sec) mysql> mysql> explain select pn.timestamp,ne.viewpoint,pn.id,pn.type,ne.type,ne.newsid,ne.hidestamp from newsentries10 ne use index (list_news), pnews pn where ne.playerid=28575 and ne.type=2 and pn.newsid=ne.newsid; +-------+--------+-----------------------+---------+---------+-----------+-- ------+------------+ | table | type | possible_keys | key | key_len | ref | rows | Extra | +-------+--------+-----------------------+---------+---------+-----------+-- ------+------------+ | ne | ALL | list_news,delete_news | NULL | NULL | NULL | 774878 | where used | | pn | eq_ref | PRIMARY | PRIMARY | 4 | ne.newsid | 1 | | +-------+--------+-----------------------+---------+---------+-----------+-- ------+------------+ 2 rows in set (0.00 sec) mysql> mysql> explain select straight_join pn.timestamp,ne.viewpoint,pn.id,pn.type,ne.type,ne.newsid,ne.hidestamp from newsentries10 ne use index (list_news), pnews pn where ne.playerid=28575 and ne.type=2 and pn.newsid=ne.newsid; +-------+--------+-----------------------+---------+---------+-----------+-- ------+------------+ | table | type | possible_keys | key | key_len | ref | rows | Extra | +-------+--------+-----------------------+---------+---------+-----------+-- ------+------------+ | ne | ALL | list_news,delete_news | NULL | NULL | NULL | 774878 | where used | | pn | eq_ref | PRIMARY | PRIMARY | 4 | ne.newsid | 1 | | +-------+--------+-----------------------+---------+---------+-----------+-- ------+------------+ 2 rows in set (0.00 sec) ---- Andrei Cojocaru [EMAIL PROTECTED] ----- Original Message ----- From: "Heikki Tuuri" <[EMAIL PROTECTED]> To: <[EMAIL PROTECTED]> Sent: Tuesday, May 21, 2002 12:40 PM Subject: Re: InnoDB, possible bug? > Andrei, > > how many rows in ne satisfy > > (1) ne.playerid=28575, > > (2) ne.type=2? > > What version you are using? .48 was tuned to favor index searches over table > scans. > > What does EXPLAIN SELECT say if you force the index usage with USE INDEX and > STRAIGHT JOIN clauses? > > Best regards, > > Heikki Tuuri > Innobase Oy > --- > Order technical MySQL/InnoDB support at https://order.mysql.com/ > See http://www.innodb.com for the online manual and latest news on InnoDB > > > ----- Original Message ----- > From: ""Andrei Cojocaru"" <[EMAIL PROTECTED]> > Newsgroups: mailing.database.mysql > Sent: Monday, May 20, 2002 6:46 PM > Subject: InnoDB, possible bug? > > > > Hello, > > > > I've just switched to InnoDB table from myISAM and it's been running > pretty > > smoothly except on this SQL statement it doesn't use any indexes when > there > > are, and therefore is very slow. > > > > mysql> explain select > > pn.timestamp,ne.viewpoint,pn.id,pn.type,ne.type,ne.newsid,ne.hidestamp > from > > newsentries10 ne, pnews pn where ne.playerid=28575 and ne.type=2 and > > pn.newsid=ne.newsid; > > > +-------+--------+-----------------------+---------+---------+-----------+-- > > ------+------------+ > > | table | type | possible_keys | key | key_len | ref | > > rows | Extra | > > > +-------+--------+-----------------------+---------+---------+-----------+-- > > ------+------------+ > > | ne | ALL | list_news,delete_news | NULL | NULL | NULL | > > 734023 | where used | > > | pn | eq_ref | PRIMARY | PRIMARY | 4 | ne.newsid | > > 1 | | > > > +-------+--------+-----------------------+---------+---------+-----------+-- > > ------+------------+ > > 2 rows in set (0.00 sec) > > > > (Notice that key for ne is NULL when there is obviously an index it could > > use, but doesn't, why?) > > > > the table structures for the two tables are: > > mysql> desc newsentries10; > > +-----------+---------------------+------+-----+---------+-------+ > > | Field | Type | Null | Key | Default | Extra | > > +-----------+---------------------+------+-----+---------+-------+ > > | newsid | int(10) unsigned | | MUL | 0 | | > > | playerid | int(10) unsigned | | MUL | 0 | | > > | hidestamp | int(10) unsigned | | | 0 | | > > | viewpoint | tinyint(3) unsigned | | | 0 | | > > | type | tinyint(3) unsigned | | | 0 | | > > | delmarker | tinyint(3) unsigned | | MUL | 0 | | > > +-----------+---------------------+------+-----+---------+-------+ > > 6 rows in set (0.00 sec) > > > > mysql> desc pnews; > > > +-----------+---------------------+------+-----+---------+----------------+ > > | Field | Type | Null | Key | Default | Extra > | > > > +-----------+---------------------+------+-----+---------+----------------+ > > | newsid | int(10) unsigned | | PRI | NULL | auto_increment > | > > | type | tinyint(3) unsigned | | | 0 | > | > > | id | int(10) unsigned | | MUL | 0 | > | > > | timestamp | int(10) unsigned | | | 0 | > | > > > +-----------+---------------------+------+-----+---------+----------------+ > > 4 rows in set (0.00 sec) > > > > the indexs are: > > mysql> show index from newsentries10; > > > +---------------+------------+-------------+--------------+-------------+--- > > --------+-------------+----------+--------+---------+ > > | Table | Non_unique | Key_name | Seq_in_index | Column_name | > > Collation | Cardinality | Sub_part | Packed | Comment | > > > +---------------+------------+-------------+--------------+-------------+--- > > --------+-------------+----------+--------+---------+ > > | newsentries10 | 1 | delmarker | 1 | delmarker | > A > > | 0 | NULL | NULL | | > > | newsentries10 | 1 | list_news | 1 | playerid | > A > > | 0 | NULL | NULL | | > > | newsentries10 | 1 | list_news | 2 | type | > A > > | 0 | NULL | NULL | | > > | newsentries10 | 1 | delete_news | 1 | newsid | > A > > | 76379 | NULL | NULL | | > > > +---------------+------------+-------------+--------------+-------------+--- > > --------+-------------+----------+--------+---------+ > > 4 rows in set (0.20 sec) > > > > mysql> show index from pnews; > > > +-------+------------+----------+--------------+-------------+-----------+-- > > -----------+----------+--------+---------+ > > | Table | Non_unique | Key_name | Seq_in_index | Column_name | Collation | > > Cardinality | Sub_part | Packed | Comment | > > > +-------+------------+----------+--------------+-------------+-----------+-- > > -----------+----------+--------+---------+ > > | pnews | 0 | PRIMARY | 1 | newsid | A | > > 139047 | NULL | NULL | | > > | pnews | 1 | id | 1 | id | A | > > 139047 | NULL | NULL | | > > > +-------+------------+----------+--------------+-------------+-----------+-- > > -----------+----------+--------+---------+ > > 2 rows in set (0.07 sec) > > > > Now I have an index on the two columns that are used in the query on the > > newsentries10 table and it doesn't use them at all. Could someone please > > explain this to me and give me any advice on how to fix it? > > > > Thanks for your help in advance. > > > > words to bypass filter: sql queries > > ---- > > Andrei Cojocaru > > [EMAIL PROTECTED] > > > > > > --------------------------------------------------------------------- > > 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 > > > > > > --------------------------------------------------------------------- > 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 > > --------------------------------------------------------------------- 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