![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 136 Pomógł: 0 Dołączył: 2.01.2004 Skąd: Lublin Ostrzeżenie: (0%) ![]() ![]() |
Witam serdecznie jak zawsze (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Często podczas kodowania czegokolwiek opartego o bazę danych, np sklepu myślałem sobie jak obsłużyć odpowiednio "stare" dane. Pójdę przykładem sklepu. Powiedzmy, że jes tabela zamówienia: [sql:1:f6e7216490] CREATE TABLE zamowienia( id INT UNISGNED NOT NULL AUTO_INCREMENT, opis CHAR(20) NOT NULL, PRIMARY KEY(id) ); [/sql:1:f6e7216490] Sklep działa już od 3 lat i tabela tak sie rozrosła, że pobieranie zamówień z bierzącego miesiąca (najczęściej wykonywane zapytanie na tej tabeli) trwa dość długo. Zawsze myślałem o tym, w jaki sposób przenosić "niepotrzebne" w danym okresie dane w takie miejsce, żeby jednak można było z nich skorzystać w dowolnej chwili a żeby nie powodowały spowolnienia tych najczętszych zapytań. Chyba rozumiecie o co mi chodzi (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) (mam nadzieję) Tego typu rozmyślenia czy plany zawsze miałem w głowie, nigdy nie zaimplementowałem żadnego rozwiązania tego "problemu". No i stało się, że czytam sobie książeczkę o MySQL'u i natrafiłem na pojęcie tworzenia tabel typu MERGE i stwierdziłem, że to właśnie idealny sposób rozwiązania "problemu" o, którym piszę. Domyślam się, że twórcy MySQL'a stworzyli ten typ tabeli m.in. do takich zastosowań ale ciekawy jestem czy wy z tego korzystacie i jeśli tak to w jakich sytuacjach i jak to się sprawdza w praktyce. Czytałem, też że czasami tabele tego typu mogą się okazać kłopotliwe. Może znajdzie się ktoś znający temat z doświadczenia, byłoby miło (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) edit... Przypomniałem sobie o jeszcze jednym nurtującym mnie pytaniu. O ile można mieć w mySQL transakcje używając tabel typu InnoDB o tyle przy zastosowaniu tabel typu MERGE są to tak naprawdę tabele typu MyISAM - co w tedy z transakcjami? Macie jakiś sposób na osiągnięcię tego co dają tabele MERGE'owane i jednocześnie zachowanie możliwości wykonywania transakcji (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 23 Pomógł: 0 Dołączył: 7.06.2004 Ostrzeżenie: (0%) ![]() ![]() |
Tak czy siak na zbyt duże bazy nie ma mocnych (IMG:http://forum.php.pl/style_emoticons/default/sad.gif) Ja sobie radzę siekając dane rocznikami (table --> n * table_rrrr) , ale zawsze pozostaje problem, co zrobić z zamówieniem z grudnia realizowanymi w styczniu (IMG:http://forum.php.pl/style_emoticons/default/sad.gif) Metoda używania sztuczek nie jest lubiana przez programistów też, ale głównie przez producentów sprzętu, którzy zawsze chętnie ci dodadzą ( nie gratis ) parę nowych kostek RAM lub dysków :wink:
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 14:27 |