![]() |
![]() |
![]()
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
![]() 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 ![]() 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 ![]() 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 ![]() -------------------- |
|
|
![]() ![]() |
![]() |
Aktualny czas: 21.08.2025 - 11:04 |