![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 9 Pomógł: 0 Dołączył: 27.02.2009 Ostrzeżenie: (10%) ![]() ![]() |
Witam, mam problem, który nie dał mi spać dzisiejszej nocy, dotyczący aktualizacji bazy danych.
Chodzi o sytuację, kiedy stale aktualizuję tabelę, która ma klucz glówny. Jak to przy aktualizacji, mogą pojawiać się nowe dane, albo być poprawiane stare. Dotąd robiłem to tak: INSERT into tabela ON DUPLICATE KEY UPDATE.... Problem, polega na tym, że przy dużej liczbie danych zaczyna się zamulać... Powodem może być specyika aktualizacji, w której orientacyjnie w 99% wypadków wykonywany jest UPDATE, a INSERT bardzo rzadko. Więc w praktyce moja metoda najpierw próbuje robić INSERT, który w 99% przypadków sie nie udaje (okazuje się to po sprawdzeniu klucza głównego, w bardzo długiej liście), następnie wykonuje UPDATE, który sie udaje. Moje pytanie, czy da się jakoś sprytnie odwrócić kolejność działań - coś w stylu: UPDATE tabela (99% się udaje) ON nie_było_co_updatować INSERT (wyjątek dla 1% wyjątków) Zamiast: INSERT INTO tabela (1% się udaje) ON DUPLICATE KEY UPDATE (wyjątek dla 99%) To jakiś tam pomysł, ale każda inna sugestia przyspieszająca aktualizację w takim wypadku byłaby mile widziana ![]() -------------------- PROGRAMISTA
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 21.08.2025 - 19:22 |