phpbar.de logo

Mailinglisten-Archive

Langsamer Datenvergleich / Doppelte Daten finden

Langsamer Datenvergleich / Doppelte Daten finden

Marcus Füg malinux at partysoke.de
Fre Mar 11 13:27:26 CET 2005


Hallo,

ich bin gerade dabei ein paar Adress Daten zu vergleichen und löse das 
über eine MySQL Datenbank.
In der DB habe ich ungefähr 10.000 Datensätze und möchte diese auf 
doppelte Einträge prüfen, doch mit meinem SQL Statement ist das recht 
langsam oder liege ich da falsch? Kann man da noch was optimieren???

CREATE TABLE `tmp_kunden` (
  `id` int(8) NOT NULL auto_increment,
  `adresse` enum('y','n') NOT NULL default 'n',
  `firma` varchar(55) NOT NULL default '',
  `name` varchar(35) NOT NULL default '',
  `strasse` varchar(25) NOT NULL default '',
  `hnr` varchar(8) NOT NULL default '',
  `plz` varchar(10) NOT NULL default '',
  `land` varchar(5) default NULL,
  `ort` varchar(25) NOT NULL default '',
  `telefon` varchar(25) NOT NULL default '',
  PRIMARY KEY  (`id`),
  UNIQUE KEY `id` (`id`),
  UNIQUE KEY `kd_nr` (`kd_nr`),
  KEY `adresse` (`adresse`),
  KEY `firma` (`firma`),
  KEY `name` (`name`),
  KEY `strasse` (`strasse`),  
  KEY `hnr` (`hnr`),  
  KEY `plz` (`plz`),  
  KEY `ort` (`ort`),
) TYPE=MyISAM PACK_KEYS=0 COMMENT='Kunden' AUTO_INCREMENT=10917 ;

SELECT t.id AS id, CONCAT( t.firma, ' ', t.name ) AS Name, CONCAT( 
t.strasse, ' ', t.hnr ) AS Strasse, CONCAT( t.plz, ' ', t.ort ) AS Ort, 
t2.id AS id2, CONCAT( t2.firma, ' ', t2.name ) AS Name2, CONCAT( 
t2.strasse, ' ', t2.hnr ) AS Strasse2, CONCAT( t2.plz, ' ', t2.ort ) AS Ort2
FROM tmp_kunden t, tmp_kunden t2
WHERE t.id <> t2.id
AND t.firma LIKE t2.firma
AND t.name LIKE t2.name
AND t.strasse LIKE t2.strasse
LIMIT 0 , 100


Grüße Marcus

-- 
Infos zur Mailingliste, zur Teilnahme und zum An- und Abmelden unter
-->>  http://www.4t2.com/mysql 


php::bar PHP Wiki   -   Listenarchive