Ho due tabelle: una è ip_group_city da ipinfodb.com contenente numeri ip_start per determinare la posizione degli IP, e altro è "visite" con informazioni sul visitatore del sito Web contenente la colonna "ip".IP efficace -> query di posizione
Devo selezionare la top 10 region_code (da ip_group_city) controllando region_code per ogni IP dalla tabella "visits".
In questo momento mi sto caricando tutti gli IP da "visite" in un array e utilizzare queste informazioni IP di interrogare l'ip_group_city da:
SELECT region_code
FROM ip_group_city
WHERE ip_start <= INET_ATON(IP_FROM_ARR)
ORDER BY ip_start DESC LIMIT 1
Sono in grado di creare una sorta di interrogazione annidata fare il lavoro per me, perché in questo momento le cose sono un po 'lente :) - ci vogliono fino a 30s sul mio laptop xampp (AMD Turion x2 2GHz, con Windows 7 ultima versione a 64 bit)
Ecco la tabella con gli indirizzi IP (visite)
CREATE TABLE IF NOT EXISTS `visits` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`clientid` mediumint(8) unsigned NOT NULL,
`ip` varchar(15) NOT NULL,
`url` varchar(512) NOT NULL,
`client_version` varchar(64) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=49272 ;
Grazie
Inoltre, Consigli su altri modi intorno sono accettate. Forse c'è qualche altro db che è più efficace per questo re del lavoro. Ho più di 10.000 di IP nel db che devo risolvere per la geolocalizzazione. – hummingBird
Non riesco a riprodurre il problema. Usando 'ipinfodb_one_table_small' con MySQL 5.1, la tua query termina in meno di 10ms per me (su Linux). Presumo che gli anni '30 siano per fare più query, ad es. per tutte le visite. Se è così, si prega di mostrare anche la tabella delle visite e il modo in cui ci si ricollega. –
ok, sto aggiungendo la struttura della tabella alla domanda :) – hummingBird