Post
#1
|
|
|
Grupa: Developerzy Postów: 823 Pomógł: 12 Dołączył: 18.12.2005 Ostrzeżenie: (0%)
|
Witam.
Ostatnio postanowiłem napisać sobie system powiadomień w serwsie. Proste powiadomienie to przypisanie rekordu użytkownikowi. Zaawansowane natomiast to takie, które jes rozsyłane do wszystkich przyjaciół uzytkownika. No wiadomo, nie będę rozsyłał d wszystkich userów po rekordzie, tylko rozpiszę tabelę trochę inaczej. Oto jej s ruktura: (klucz notice_owner napisany testowo)
Opis pól (ważniejszych): notice_owner - "posiadacz" powiadomienia notice_user - id user na temat którego jest powiadomienie Wykorzystanie.
PIERWSZE (unia):
(wykorzystane wszystkie klucze, oprócz notice_owner bo tego zapytania się on nie tyczy. Wyskakuje EXTRA w unii: Impossible WHERE noticed after reading const table...) DRUGIE (z wykorzystaniem OR):
(tutaj nie korzysta się z klucza notice_owner) Pytania: a ) które zapytanie jest bardziej optymalne (proszę wziąć pod uwagę brak wykorzystania klcza w OR, jeżeli da się go jakoś zbudować, to jak) b ) niepokoi mnie komunikat w EXTRA przy pierwszym zapytaniu dla unii: Impossible WHERE noticed after reading const table... Dziekuję za wypowiedzi. |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Developerzy Postów: 823 Pomógł: 12 Dołączył: 18.12.2005 Ostrzeżenie: (0%)
|
Sęk w tym, że przy warunku OR:
Dla przypadków połączonych tą klauzulą: a ) po notice_owner = ID_USERA_POWIADAMIANEGO b ) po notice_owner = 0 i notice_self = 1 i notice_user IN( PRZYJACIELE_USERA_POWIADAMIANEGO ) , nie wykorzystywany jest żaden z wyżej wymienionych (które podałem w załączonych listingach) kluczy (badane EXPLAIN) |
|
|
|
Athlan OR w warunku czy stworzenie unii 7.01.2008, 17:05:40
Sedziwoj Właśnie czytam i jakoś nie do końca rozumiem. Powi... 15.01.2008, 15:58:41 ![]() ![]() |
|
Aktualny czas: 10.06.2026 - 03:56 |