Witam!
Zwracam się do szanownego grona specjalistów o pomoc w dwóch ( jak na razie) sprawach :
1. Na serwerze umieszczona jest baza MySQL oraz serwer aplikacji, z ktorym połączonych jest kilkaset urządzen, ktore co kilka-kilkanście sekund przysyłają dane, ktore wymagają aktualizacji bazy danych (zapisywanie wyników oraz aktualizacja danych o stanie urządzenia). Na tym serwerze umieszczone są także skrypty php, które pozwalają na monitorowanie stanu poszczególnych urządzeń oraz tworzenie statystyk. Problem polega na tym, że w momencie gdy zażyczymy sobie zrobienia statystyk ze wszystkich urządzeń na raz, ogrom danych, które muszą być wyszukane, sortowane itp jest tak duza (tabela logów zawiera kilkaset tysięcy - kilka milionów rekordów), że przez kilka minut serwer aplikacji ma problem z obsłużeniem połączeń z urządzeniami (na urządzeniach wyskakują timeouty związane z nieodpowiedzeniem serwera aplikacji w zadanym czasie, co jest spowodowane (wg mnie) niewykonaniem aktualizacji bazy danych w zadanym czasie w związku z czasochłonnymi wątkami zapytań statystycznych ).
Moje pytanie brzmi: czy możliwe jest ustawianie priorytetu dla poszczególnych odwołań do bazy danych, tzn. czy np zapytaniom związanym ze statystyką można przydzielić niższy priorytet niż zapytaniom aktualizującym dane?
2. Bardziej szczegółowe:
Mamy tabele urządzeń i systemów składających się z 3 urządzeń:
tbl_urzadzenie
ID_urzadzenia int (PRIMARY KEY)
...
tbl_system
ID_system int (PRIMARY KEY)
ID_urz1 int
ID_urz2 int
ID_urz3 int
ID_urza1-3 są kluczami obcymi wskazującymi na ID_urzadzenia w tbl_urzadznie.
Moje pytanie brzmi:
czy dla każdego z pol ID_urz1-3 tworzyć osobny klucz obcy czy też 1 klucz obcy powinien składać się z tych 3 pól. Dla tego drugiego przypadku MySQL Workbench wygenerował taki kod:
CONSTRAINT `FOREIGN_URZ1`
FOREIGN KEY (`ID_urz1` , `ID_urz2` , `ID_urz3` )
REFERENCES `main_srv`.`tbl_urzadzenie` (`ID_urzadzenia` , `ID_urzadzenia` , `ID_urzadzenia` )
ON DELETE NO ACTION
ON UPDATE NO ACTION)
Nie za bardzo rozumię jak to działa w przypadku złożonego klucza obcego więc jakby ktoś mógł mi to wytłumaczyć to byłbym bardzo zobowiązany.
Pozdrawiam
Artur