Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> opytmalizacja zapytania w bardzo dużej bazie
yakuz
post 22.06.2009, 12:33:32
Post #1





Grupa: Zarejestrowani
Postów: 16
Pomógł: 0
Dołączył: 22.11.2003

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


Witam, mam problem z zapytaniem do bazy które wygląda tak:

  1. <?php
  2. $sql = mysql_query("SELECT id,tag,name,namepl,url,time,datepub,thumb,view FROM baza WHERE status='2' AND datepub<'".time()."' ORDER BY datepub DESC LIMIT $start,".NA_STRONIE);
  3. ?>


struktura bazy

  1. CREATE TABLE `baza` (
  2. `id` int(11) NOT NULL AUTO_INCREMENT,
  3. `tag` varchar(255) character SET utf8 collate utf8_unicode_ci NOT NULL DEFAULT '',
  4. `name` varchar(255) character SET utf8 collate utf8_unicode_ci NOT NULL DEFAULT '',
  5. `namepl` varchar(255) character SET utf8 collate utf8_unicode_ci NOT NULL DEFAULT '',
  6. `url` varchar(255) character SET utf8 collate utf8_unicode_ci NOT NULL DEFAULT '',
  7. `time` varchar(8) character SET utf8 collate utf8_unicode_ci NOT NULL DEFAULT '',
  8. `date` int(11) NOT NULL DEFAULT '0',
  9. `datepub` int(11) NOT NULL DEFAULT '0',
  10. `status` int(2) NOT NULL DEFAULT '0',
  11. `host` int(2) NOT NULL DEFAULT '0',
  12. `video_id_host` varchar(255) character SET utf8 collate utf8_unicode_ci NOT NULL DEFAULT '',
  13. `info` varchar(255) character SET utf8 collate utf8_unicode_ci NOT NULL DEFAULT '',
  14. `flv` text character SET utf8 collate utf8_unicode_ci NOT NULL,
  15. `embed` text character SET utf8 collate utf8_unicode_ci NOT NULL,
  16. `thumb` varchar(255) character SET utf8 collate utf8_unicode_ci NOT NULL DEFAULT '',
  17. `view` int(11) NOT NULL DEFAULT '0',
  18. `comment` int(11) NOT NULL DEFAULT '0',
  19. PRIMARY KEY (`id`),
  20. UNIQUE KEY `thumb` (`thumb`),
  21. UNIQUE KEY `url` (`url`),
  22. KEY `datepub` (`datepub`),
  23. KEY `status` (`status`),
  24. KEY `url_2` (`url`),
  25. KEY `id` (`id`),
  26. KEY `tag` (`tag`),
  27. KEY `view` (`view`)
  28. ) ENGINE=MyISAM DEFAULT CHARSET=latin2


w tabeli jest ponad 177 tys wpisów i przez to ładowanie strony twa ponad 10 sekund po zmniejszeniu tabeli do 50 tys wpisów strona chodzi ponownie szybko co zrobić aby zoptymalizować zapytanie lub bazę aby dobrze działała strona przy 177 tys wpisach?
Go to the top of the page
+Quote Post
nospor
post 22.06.2009, 12:37:30
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




strasznie dlugo.
indexy wydają sie byc ok.
sprobuj zamiast: status='2'
dac: status=2

przeciez status to liczba.

dodatkowo zmien typ pola z : int(2) na tinyint. zakladam ze status to mala liczba i mieszanie do tego inta to marnowanie bajtow. danie w nawiasie (2) tu nic nie da, po to dotyczy tylko zerofill a nie zakresu danych

rowniez z datepub usun ciapki bo widze tez inta tam trzymasz a nie date


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
maly_swd
post 22.06.2009, 12:39:15
Post #3





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

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


a co pokazuje EXPLAIN?
laczyles moze indexy? np datepub, status?
status='2' to chyba powinno byc: status=2

pokaz explain z tego zapytania

*nospor - jak zawsze szybszy:)

Ten post edytował maly_swd 22.06.2009, 12:40:15


--------------------
śmieszne obrazki
Kryzys: Ser jem spleśniały, wino piję stare i samochód mam bez dachu..
Go to the top of the page
+Quote Post
yakuz
post 22.06.2009, 13:08:41
Post #4





Grupa: Zarejestrowani
Postów: 16
Pomógł: 0
Dołączył: 22.11.2003

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


Cytat(nospor @ 22.06.2009, 14:37:30 ) *
rowniez z datepub usun ciapki bo widze tez inta tam trzymasz a nie date


nie znam się na bazach znasz może polecenie którym przekształce date z timestamp na date w formacie data w mysql?
Go to the top of the page
+Quote Post
erix
post 22.06.2009, 14:58:55
Post #5





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




A dokumentację przeglądałeś?


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 13.08.2025 - 22:02