Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Optymalizacja zapytań
sebekzosw
post
Post #1





Grupa: Zarejestrowani
Postów: 437
Pomógł: 42
Dołączył: 16.04.2007

Ostrzeżenie: (0%)
-----


Mam tabelę, w której znajduje się ponad 2.500.000 rekordów.

jeżeli wykonuje zapytanie sprawdzające źródła odwiedzin:

  1. SELECT `domain`, COUNT(`id`) AS `count` FROM `all_cms_entry` GROUP BY `domain` ORDER BY `count` DESC


to trochę długo się wykonuje:

Pokaż wiersze 0 - 3 ( 4 wszystkich, Wykonanie zapytania trwało 8.5397 sekund(y))

Oto moja struktura bazy danych:
  1. CREATE TABLE IF NOT EXISTS `all_cms_entry` (
  2. `id` mediumint(8) UNSIGNED NOT NULL AUTO_INCREMENT,
  3. `page` varchar(50) COLLATE utf8_polish_ci DEFAULT NULL,
  4. `back` enum('0','1') COLLATE utf8_polish_ci DEFAULT '0',
  5. `domain` varchar(70) COLLATE utf8_polish_ci DEFAULT NULL,
  6. `referer` varchar(100) COLLATE utf8_polish_ci DEFAULT NULL,
  7. `browser` varchar(30) COLLATE utf8_polish_ci DEFAULT NULL,
  8. `platform` varchar(20) COLLATE utf8_polish_ci DEFAULT NULL,
  9. `keyword` varchar(60) COLLATE utf8_polish_ci DEFAULT NULL,
  10. `ip` int(10) UNSIGNED DEFAULT NULL,
  11. `date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  12. PRIMARY KEY (`id`),
  13. KEY `page` (`page`,`back`,`domain`,`browser`, `platform`, `keyword`,`ip`),
  14. ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_polish_ci AUTO_INCREMENT=2621940 ;


Da się to jakoś przyśpieszyć?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
maly_swd
post
Post #2





Grupa: Zarejestrowani
Postów: 744
Pomógł: 118
Dołączył: 14.02.2009
Skąd: poziome

Ostrzeżenie: (0%)
-----


  1. SELECT avg(a.sec) FROM (SELECT UNIX_TIMESTAMP(MAX(`date`))- UNIX_TIMESTAMP(MIN(`date`)) AS `sec`, `eid` FROM `all_cms_entry`
  2. WHERE `eid` > 0
  3. GROUP BY `eid`
  4. ORDER BY `all_cms_entry`.`eid` DESC
  5. ) AS a


moim zdaniem cos masz namieszane w danych i zalozeniach, czemu liczycz to w taki sposob? UNIX_TIMESTAMP(MAX(`date`))- UNIX_TIMESTAMP(MIN(`date`)
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 6.10.2025 - 14:14