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]