Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> opytmalizacja zapytania w bardzo dużej bazie
yakuz
post
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
 
Start new topic
Odpowiedzi
nospor
post
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
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: 24.08.2025 - 13:02