Autor Zpráva
Numero1990
Profil
Zdravím,
potřeboval bych od Vás poradit.

Pokud se mi na webu zvýší návštěvnost, tak mi na MySQL dotaz (to videoID ve WHERE může být libovolné)
SELECT `videos`.`videoID`, `videos`.`title`, `videos`.`videoExt`, `videos`.`width`, `videos`.`height`, `videos`.`picExt`, `categories`.`title` AS `categoryTitle` 
FROM `videos` 
INNER JOIN `categories` ON `videos`.`categoryID` = `categories`.`categoryID` 
WHERE `videos`.`videoID` = 26
někdy příjde "MySQL server has gone away".

Podle dokumentace to může být tím, že není dostatek volné paměti na vykonání dotazu, takže dotaz čeká, až se nějaká uvolní, ale pouze nějaký stanovený čas. Pokud do té doby nedojde k uvolnění, dotaz dostane timeout a vrátí tohle.

Struktura tabulek
videos


categories


Explain


Dá se to ještě nějak optimalizovat?

Edit: Ještě dodám, že vazba mezi kategorií a videem je taková, že video musí být právě v jedné kategorii.
pcmanik
Profil
Numero1990:
Ako vidis podla explainu, indexy sa pouzivaju spravne. Skus zapnut cachovanie, ci uz sql, alebo na webovej stranke.
Numero1990
Profil
Jsem na sdíleném hostingu, kde se zapíná cachování?
Díky
Kajman
Profil
Problém nebude v uvedeném dotaze, vypadá jednoduše. Databáze bude možná přiliš zatížená jinými dotazy či uživateli hostingu. Také může mít hosting neoptimální konfiguraci mysql serveru. Zkuste problém zkonzultovat s hostingem, případně ho vyměňte.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0