![]() |
![]() |
![]() ![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 243 Pomógł: 1 Dołączył: 1.06.2010 Ostrzeżenie: (0%) ![]() ![]() |
Do bazy w jednej tabeli planuje zapis dość sporo rekordów , a konkretnie 300 tyś dziennie.
Mam wobec tego pytanie jak zaplanować zapis i odczyt danych ? Chcę podzielić zapisy na miesiące i co miesiąc tworzyć nową tabelę. Ale może są już jakieś dirvery gotowe do takich rzeczy ? Nie chcę wymyślać koła na nowo. Generalnie dane muszą być cały czas dostępne w systemie jak cofnę się w historii. Oczywiście chodzi o statystyki. Robił z was ktoś coś podobnego ? Chętnie wysłucham wasze opinie na to jak podejść do tematu . |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 590 Pomógł: 185 Dołączył: 19.04.2006 Skąd: Gdańsk Ostrzeżenie: (0%) ![]() ![]() |
Zależy do czego to ma służyć i jak być wykorzystywane, pod jakim obciążeniem ma działać etc. Kiedyś miałem podobny problem z bazą klientów ale okazało się, że 99% userów wybiera przynajmniej region, więc podzieliłem tabele na kilkanaście mniejszych a wybór regionu zrobiłem obligatoryjnie, działało pięknie. Słyszałem też o partycjonowaniu(?) tabeli, można również szukać w wielu tabelach, tworzyć tabele pomocnicze zawierające potrzebne przeliczenia, wprowadzić system, który automatycznie utworzy nową tabelę gdy ilość rekordów dojdzie do 10 milionów etc. Kiedyś trzeba było się martwić, gdy był milion rekordów, dziś myślę, że jak masz dobry serwer bazy to MySql 10 milionów rekordów powinien uciągnąć.
I jeśli jest potrzebny tylko miesiąc albo miesiąc-rok to nie robiłbym datetime'a, lecz integery albo year + tinyint, będzie szybciej. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 5.10.2025 - 14:31 |