Imam relativno veliku tabelu sa par stotina hiljada do par miliona domena. Struktura je sledeca:
Kôd:
CREATE TABLE `odm_result_keywords_de` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`domain` varchar(255) NOT NULL DEFAULT '',
`ovt_ext` int(11) DEFAULT NULL,
`ovt_ext_local` int(11) DEFAULT NULL,
`whois_status` varchar(100) DEFAULT NULL,
`last_modified_date` date DEFAULT NULL,
`domain_status` varchar(100) DEFAULT NULL,
`nameserver` varchar(255) NOT NULL DEFAULT '',
`master_id` int(10) unsigned NOT NULL DEFAULT '0',
PRIMARY KEY (`id`),
UNIQUE KEY `domain` (`domain`),
KEY `ovt_ext` (`ovt_ext`),
KEY `ovt_ext_local` (`ovt_ext_local`),
KEY `whois_ovt` (`whois_status`,`ovt_ext`),
KEY `domain_status` (`domain_status`)
)
E sad, posto moram da proveravam na whois samo one domene koji imaju bilo ovt_ext ili ovt_ext_local polja > 0 imam sledeci query u whois check skriptu:
Kôd:
select domain from odm_result_keywords_de
where whois_status is null and (ovt_ext > 0 or ovt_ext_local > 0)
Ima li neko ideju kako optimizovati pomenuti query tako da koristi indexe. Ovako kako je sada, koristio bi se index whois_ovt, ali posto je kardinalnost nikakva nije od neke koristi (za 99% domena ovde whois_status polje je null), tako da bi se prakticno proveravali svi slogovi (sto nije mala cifra). Slicno je i sa kardinalnoscu ovt polja (vrednosti su u 90% slucajeva 0).