Optimer stor DB > 500.000 records
Jeg har en (syntes jeg selv) stor DB med en masse firmaoplysninger. Mit problem er at den er rasende langsom når jeg søger i den.Dataene er fra Købmandstanden og der er ca 575.000 firmaer i og ca 2000 forskellige brancher.
Hvis jeg eksempelvis søger efter en bestemt branche, søger jeg efter en kode i felterne kode1 - kode9
"SELECT navn, telefon FROM kobdata2 WHERE (kode1 = 441122 OR kode2 = 441122 o.s.v.)"
Den søgning tager 5-6 sekunder, det er en P4@1.8GHz, 512 MB RAM, Windows XP (ender dog på en 2000 Server)
Det er jo død langsomt, det går også galt når man laver en fritekst søgning på navnet "WHERE navn LIKE '%malermester john%'... så er vi oppe på 4-6 sekunder. Big time for lang tid.
Hvad skal jeg gøre for at optimere tabellen til disse søgninger. Især den første efter kode1... skal være hurtigere idet denne søgning foretages ofte.
Tabellen ser sådan her ud:
CREATE TABLE kobdata2 (
ID int(10) unsigned NOT NULL auto_increment,
navn varchar(255) default NULL,
sammensatnavn varchar(255) default NULL,
conavn varchar(255) default NULL,
adresse varchar(255) default NULL,
tom1 varchar(255) default NULL,
postnr smallint(255) default NULL,
bynavn varchar(255) default NULL,
telefon varchar(255) default NULL,
telefax varchar(255) default NULL,
web varchar(255) default NULL,
email varchar(255) default NULL,
kode1 mediumint(255) default NULL,
kode2 mediumint(255) default NULL,
kode3 mediumint(255) default NULL,
kode4 mediumint(255) default NULL,
kode5 mediumint(255) default NULL,
kode6 mediumint(255) default NULL,
kode7 mediumint(255) default NULL,
kode8 mediumint(255) default NULL,
kode9 mediumint(255) default NULL,
kat1 varchar(255) default NULL,
kat2 varchar(255) default NULL,
kat3 varchar(255) default NULL,
kat4 varchar(255) default NULL,
kat5 varchar(255) default NULL,
kat6 varchar(255) default NULL,
kat7 varchar(255) default NULL,
kat8 varchar(255) default NULL,
kat9 varchar(255) default NULL,
keywords text,
PRIMARY KEY (ID)
) TYPE=MyISAM;
mvh
Mark
