>Description: See "How-To-Repeat"
>How-To-Repeat: I uploaded a copy of the tables to support.mysql.com/pub/mysql/secret. Each of the tables below contains many rows (from 50-100k per table). We were unable to duplicate with a smaller result set, CREATE TABLE listing ( id int(10) unsigned NOT NULL default '0', seller_id int(10) unsigned NOT NULL default '0', PRIMARY KEY (id), KEY seller_id (seller_id) ) TYPE=MyISAM; CREATE TABLE question ( id int(10) unsigned NOT NULL auto_increment, listing_id int(10) unsigned NOT NULL default '0', buyer_id int(10) unsigned NOT NULL default '0', last_modified timestamp(14) NOT NULL, PRIMARY KEY (id), KEY buyer_id (buyer_id), KEY listing_id (listing_id) ) TYPE=MyISAM; CREATE TABLE user ( id int(10) unsigned NOT NULL default '0', username char(15) NOT NULL default '', PRIMARY KEY (id) ) TYPE=MyISAM; SELECT COUNT(*) FROM question, listing, user ub, user us WHERE question.listing_id = listing.id AND question.buyer_id = ub.id AND listing.seller_id = us.id AND (ub.id = 2346 OR us.id = 2346) ORDER BY question.last_modified DESC; +----------+ | COUNT(*) | +----------+ | 4 | +----------+ SELECT question.id AS question_id, listing.id AS listing_id, ub.id AS buyer_id, ub.username AS buyer_name, us.id AS seller_id, us.username as seller_name FROM question, listing, user ub, user us WHERE question.listing_id = listing.id AND question.buyer_id = ub.id AND listing.seller_id = us.id AND (ub.id = 2346 OR us.id = 2346) ORDER BY question.last_modified DESC; +-------------+------------+----------+------------+-----------+-------------+ | question_id | listing_id | buyer_id | buyer_name | seller_id | seller_name | +-------------+------------+----------+------------+-----------+-------------+ | 6850 | 12909 | 2346 | user2346 | 4879 | user4879 | | 4823 | 39039 | 2346 | user2346 | 14831 | user14831 | +-------------+------------+----------+------------+-----------+-------------+ 2 rows in set (0.00 sec) # Adding SQL_CALC_FOUND_ROWS shows correct results SELECT SQL_CALC_FOUND_ROWS question.id AS question_id, listing.id AS listing_id, ub.id AS buyer_id, ub.username AS buyer_name, us.id AS seller_id, us.username as seller_name FROM question, listing, user ub, user us WHERE question.listing_id = listing.id AND question.buyer_id = ub.id AND listing.seller_id = us.id AND (ub.id = 2346 OR us.id = 2346) ORDER BY question.last_modified DESC; +-------------+------------+----------+------------+-----------+-------------+ | question_id | listing_id | buyer_id | buyer_name | seller_id | seller_name | +-------------+------------+----------+------------+-----------+-------------+ | 6850 | 12909 | 2346 | user2346 | 4879 | user4879 | | 4823 | 39039 | 2346 | user2346 | 14831 | user14831 | | 6084 | 49920 | 2346 | user2346 | 14704 | user14704 | | 6223 | 48014 | 2346 | user2346 | 7386 | user7386 | +-------------+------------+----------+------------+-----------+-------------+ 4 rows in set (0.00 sec) # Ordering by a indexed column shows correct results SELECT question.id AS question_id, listing.id AS listing_id, ub.id AS buyer_id, ub.username AS buyer_name, us.id AS seller_id, us.username as seller_name FROM question, listing, user ub, user us WHERE question.listing_id = listing.id AND question.buyer_id = ub.id AND listing.seller_id = us.id AND (ub.id = 2346 OR us.id = 2346) ORDER BY question.id DESC; +-------------+------------+----------+------------+-----------+-------------+ | question_id | listing_id | buyer_id | buyer_name | seller_id | seller_name | +-------------+------------+----------+------------+-----------+-------------+ | 6850 | 12909 | 2346 | user2346 | 4879 | user4879 | | 6223 | 48014 | 2346 | user2346 | 7386 | user7386 | | 6084 | 49920 | 2346 | user2346 | 14704 | user14704 | | 4823 | 39039 | 2346 | user2346 | 14831 | user14831 | +-------------+------------+----------+------------+-----------+-------------+ 4 rows in set (0.00 sec) Also, adding an index to the order by column fixes the problem. In other testing, adding a combined index: ALTER TABLE question ADD INDEX combined (last_modified, listing_id, buyer_id); fixed the problem, however, adding: ALTER TABLE question ADD INDEX combined (buyer_id, listing_id, last_modified); did not. >Fix: Adding indexes (See "How-To-Repeat") >Submitter-Id: >Originator: Shane Allen <[EMAIL PROTECTED]> >Organization: sell.com >MySQL support: none >Synopsis: >Severity: >Priority: >Category: mysql >Class: >Release: mysql-4.0.4-beta (Source distribution) >Server: /usr/local/bin/mysqladmin Ver 8.37 Distrib 4.0.4-beta, for pc-linux-gnu on >i686 Copyright (C) 2000 MySQL AB & MySQL Finland AB & TCX DataKonsult AB This software comes with ABSOLUTELY NO WARRANTY. This is free software, and you are welcome to modify and redistribute it under the GPL license Server version 4.0.4-beta-log Protocol version 10 Connection Localhost via UNIX socket UNIX socket /tmp/mysql.sock Uptime: 4 hours 31 min 20 sec Threads: 2 Questions: 18 Slow queries: 0 Opens: 229 Flush tables: 1 Open tables: 114 Queries per second avg: 0.001 >Environment: System: Linux aqua.sell.int 2.4.19 #1 SMP Mon Sep 2 15:38:05 CDT 2002 i686 unknown Architecture: i686 Some paths: /usr/bin/perl /usr/bin/make /usr/bin/gcc /usr/bin/cc GCC: Reading specs from /usr/lib/gcc-lib/i386-linux/3.1.1/specs Configured with: /mnt/data/gcc-3.1/gcc-3.1-3.1.1ds3/src/configure -v --enable-languages=c,c++,java,f77,proto,objc,ada --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-gxx-include-dir=/usr/include/c++/3.1 --enable-shared --with-system-zlib --enable-long-long --enable-nls --without-included-gettext --enable-clocale=gnu --enable-__cxa_atexit --enable-threads=posix --enable-java-gc=boehm --enable-objc-gc i386-linux Thread model: posix gcc version 3.1.1 Compilation info: CC='gcc' CFLAGS='-Wimplicit -Wreturn-type -Wswitch -Wtrigraphs -Wcomment -W -Wchar-subscripts -Wformat -Wparentheses -Wsign-compare -Wwrite-strings -Wunused -mcpu=pentiumpro -O3 -fno-omit-frame-pointer' CXX='gcc' CXXFLAGS='-Wimplicit -Wreturn-type -Wswitch -Wtrigraphs -Wcomment -W -Wchar-subscripts -Wformat -Wparentheses -Wsign-compare -Wwrite-strings -Woverloaded-virtual -Wsign-promo -Wreorder -Wctor-dtor-privacy -Wnon-virtual-dtor -felide-constructors -fno-exceptions -fno-rtti -mcpu=pentiumpro -O3 -fno-omit-frame-pointer' LDFLAGS='' LIBC: lrwxrwxrwx 1 root root 13 Sep 2 17:26 /lib/libc.so.6 -> libc-2.2.5.so -rwxr-xr-x 1 root root 1145456 Aug 14 11:26 /lib/libc-2.2.5.so -rw-r--r-- 1 root root 2376426 Aug 14 11:27 /usr/lib/libc.a -rw-r--r-- 1 root root 178 Aug 14 11:27 /usr/lib/libc.so Configure command: ./configure --prefix=/usr/local/mysql --enable-assembler --enable-thread-safe-client --with-mysqld-ldflags=-all-static --with-client-ldflags=-all-static --enable-local-infile --with-other-libc=/usr/local/mysql-glibc-2.2.5 --prefix=/usr/local --with-extra-charsets=none --without-innodb --without-isam --------------------------------------------------------------------- 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