मैं दो तालिकाओं हैं: एक ipinfodb.com आईपी के स्थान का निर्धारण के लिए ip_start संख्या से युक्त से ip_group_city है, और अन्य "विज़िट" वेब साइट आगंतुक स्तंभ 'आईपी' वाले के बारे में जानकारी के साथ है।प्रभावी आईपी> स्थान क्वेरी
मुझे प्रत्येक विज़िट के लिए "विज़िट" तालिका से क्षेत्र_code की जांच करके शीर्ष 10 क्षेत्र_code (ip_groupnai से) चुनने की आवश्यकता है।
अभी मैं "विज़िट" एक सरणी में से सभी IP लोड हो रहा हूँ और कि आईपी जानकारी से ip_group_city क्वेरी करने के लिए उपयोग करते हुए:
SELECT region_code
FROM ip_group_city
WHERE ip_start <= INET_ATON(IP_FROM_ARR)
ORDER BY ip_start DESC LIMIT 1
मुझे क्या करना नेस्टेड क्वेरी के कुछ प्रकार बनाने में असमर्थ हूँ मेरे लिए नौकरी, क्योंकि अभी चीजें थोड़ी धीमी हैं :) - मेरे लैपटॉप xampp (एएमडी टूरियन x2 2GHz, विंडोज 7 परम 64 बिट संस्करण चल रहा है) पर 30s तक लगते हैं
यहां आईपी पते (विज़िट के साथ तालिका है))
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 ;
धन्यवाद
इसके अलावा, अन्य तरीकों के आसपास स्वीकार किए जाते हैं पर सलाह। शायद कुछ अन्य डीबी है जो नौकरी के इस राजा के लिए अधिक प्रभावी है। मेरे पास डीबी में 10.000 आईपी हैं जो मुझे भौगोलिक स्थान के लिए हल करने की ज़रूरत है। – hummingBird
मैं समस्या को पुन: उत्पन्न नहीं कर सकता। MySQL 5.1 के साथ 'ipinfodb_one_table_small' का उपयोग करके, आपकी क्वेरी मेरे लिए (लिनक्स पर) 10ms से कम हो जाती है। मुझे लगता है कि 30s कई प्रश्न पूछने के लिए हैं, उदा। सभी यात्राओं के लिए। यदि ऐसा है, तो कृपया विज़िट टेबल भी दिखाएं और आप इसे कैसे लूप करें। –
ठीक है, मैं प्रश्न में तालिका संरचना जोड़ रहा हूं :) – hummingBird