I wonder how somebody can approve such a query and tables. 1) There is no indexes, thats the main reason for the time and cpu consuming. At least, the fields used in the joins MUST be indexed.
2) varchar(255) on ALL fields? That's unlikely, in-cre-di-ble. Right type for the right data, int for numbers, float for money, char for fixed string, and certainly NOT 255 for lenght! If its necesary such amount of characters, TEXT or BLOB must be used, but only if it is necesary. CREATE TABLE `memupdate` ( `MemID` int(10) NOT NULL default 0, `Status` varchar(255) NOT NULL default '', `Salut` varchar(255) NOT NULL default '', `First` varchar(255) NOT NULL default '', `Middle` varchar(255) NOT NULL default '', `Last` varchar(255) NOT NULL default '', `Suffix` varchar(255) NOT NULL default '', `SSN` varchar(255) NOT NULL default '', `Sex` varchar(255) NOT NULL default '', `Admit` varchar(255) NOT NULL default '', `Birth` varchar(255) NOT NULL default '', `Exam` varchar(255) NOT NULL default '', `School` varchar(255) NOT NULL default '', `Company` varchar(255) NOT NULL default '', `Add1` varchar(255) NOT NULL default '', `Add2` varchar(255) NOT NULL default '', `City` varchar(255) NOT NULL default '', `State` varchar(255) NOT NULL default '', `Zip` varchar(255) NOT NULL default '', `Country` varchar(255) NOT NULL default '', `Phone` varchar(255) NOT NULL default '', `Fax` varchar(255) NOT NULL default '', `Circuit` varchar(255) NOT NULL default '', `County` varchar(255) NOT NULL default '', `Year` varchar(255) NOT NULL default '', `Email` varchar(255) NOT NULL default '', `LastUpdated` varchar(255) NOT NULL default '', primary key (memID) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 CREATE TABLE `tblcc` ( `record_status` varchar(255) NOT NULL default '', `grp0` varchar(255) NOT NULL default '', `member` int(10) NOT NULL default 0, `appl_year` varchar(255) NOT NULL default '', `course_grp0` varchar(255) NOT NULL default '', `sponsor` varchar(255) NOT NULL default '', `course` varchar(255) NOT NULL default '', `dater` varchar(255) NOT NULL default '', `sub` varchar(255) NOT NULL default '', `date_maint` varchar(255) NOT NULL default '', `who_maint` varchar(255) NOT NULL default '', `seq_maint` varchar(255) NOT NULL default '', `sp_require` varchar(255) NOT NULL default '', `appl_hrs_01` varchar(255) NOT NULL default '', `appl_hrs_02` varchar(255) NOT NULL default '', `appl_hrs_03` varchar(255) NOT NULL default '', `appl_hrs_04` varchar(255) NOT NULL default '', `appl_hrs_05` varchar(255) NOT NULL default '', `appl_hrs_06` varchar(255) NOT NULL default '', `type` varchar(255) NOT NULL default '', `fee` varchar(255) NOT NULL default '', `comment_flag` varchar(255) NOT NULL default '', `paid` varchar(255) NOT NULL default '', `fee_override` varchar(255) NOT NULL default '', `charge` varchar(255) NOT NULL default '', `attend_type` varchar(255) NOT NULL default '', `instructor` varchar(255) NOT NULL default '', `date_taken` date NOT NULL default '', index memindex (member), index a_year (appl_year), index d_taken (date_taken) ENGINE=InnoDB DEFAULT CHARSET=latin1 Im assuming memupdate has unique values for memID, thus, the primary key over memID -> primary key (memID) -> index memindex (member) index for the where ->index a_year (appl_year) index fot order ->index d_taken (date_taken) For a performance issues, is better that fields in a join be of the same type and lenght -> `MemID` int(10) NOT NULL default 0, -> `member` int(10) NOT NULL default 0, data types ->`appl_year` int(4) NOT NULL default 0, ->`date_taken` date NOT NULL default '', Who made that tables and query really REALLY needs to RTFM :) http://dev.mysql.com/doc/mysql/en/select-speed.html ___________________________________________________________ 250MB gratis, Antivirus y Antispam Correo Yahoo!, el mejor correo web del mundo http://correo.yahoo.com.ar -- MySQL General Mailing List For list archives: http://lists.mysql.com/mysql To unsubscribe: http://lists.mysql.com/[EMAIL PROTECTED]