![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 6 Pomógł: 0 Dołączył: 27.05.2009 Ostrzeżenie: (0%) ![]() ![]() |
Mam całą masę rekordów około 10 000 000 które muszę dodać do tabeli pobieram je 3 rożnymi selectami i składam w całość i zapisuje jako nowy wiersz do osobnej tabeli.
Postanowiłem ze podczas dodawanie bede generował w php unikalny hash i za pomocą insert into (....) on duplicate key update set kolumna = concat_ws(',',kolumna) dopisuje kazdy rekord do listy a kiedy jakis sie powtarza tylko ta jedna wartość się rózni to jest ona dopisywana w ten sposób mam mniej wierszy zawierających tą samą ilość danych i mysql robi to za mnie a ja nie musze sie głowić jak to zrobić w php i nie wiem czy to by było szybsze bo i tak musiał bym pobierać grupować i sortować Tylko niestety to rozwiązanie ma jedne wielki minus wraz z ilością dodanych wierszy spada szybkość dodawania nowych rekordów bo baza robi się większa i większa i zaczyna to trwać w nieskończoność a tempo dodawania spada w jaki sposób to przyspieszyć. Mam serwer z 8GB ramu ale działają na nim tez strony internetowe co mogę np w konfiguracji zmienić żeby to szybciej działało jednocześnie nie powodując jakichś problemów w działaniu stron które tez korzystają z mysqla Edit: i jeszcze jedno pytanie co wypada korzystniej robienie samemu klucza unikalnego np w php za pomocą md5 czy tworzenie go z kilku kolumn przez mysqla ? Ten post edytował kefi 29.09.2010, 09:29:15 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 20.08.2025 - 20:23 |