Wyszukiwanie słów kluczowych dopasowuje słowa; wyszukiwanie semantyczne dopasowuje znaczenie. Deep-dive o embeddingach i podobieństwie wektorowym oraz o tym, jak pgvector pozwala robić wyszukiwanie semantyczne w Postgresie, który już uruchamiasz — bez osobnej bazy wektorowej.
Większość wolnych zapytań jest o jeden brakujący indeks od szybkości. Deep-dive o poprawnym indeksowaniu Postgresa — co indeksować, kolejność kolumn w indeksie złożonym, indeksy częściowe i pokrywające, czytanie EXPLAIN i znajdowanie indeksów, których nie masz (oraz usuwanie tych, których nie używasz).
Historia z okopów: zbudowaliśmy szybko na MongoDB, uderzyliśmy w granice modelu dokumentowego, uruchomiliśmy Mongo i Postgresa obok siebie w jednej aplikacji Rails i migrowaliśmy kolekcja po kolekcji do Postgresa bez przestoju. Co to kosztowało, jak to zrobiliśmy i co zrobilibyśmy inaczej.
Na ruchliwym sklepie nieostrożna migracja kładzie witrynę, blokując tabelę. Przewodnik po bezpiecznych zmianach schematu — blokady, które gryzą, bezpieczne dodawanie kolumn i indeksów oraz wzorzec expand-contract dla zmian nazw i NOT NULL.
Gdy sklep potrzebuje wyszukiwania, odruchem jest Elasticsearch — ale wyszukiwanie pełnotekstowe Postgresa dorosło. Pojedynek dla przypadku e-commerce: szeregowanie, fasety, tolerancja literówek i koszt operacyjny, który to rozstrzyga.
Sprzedaż w więcej niż jednej walucie brzmi jak problem wyświetlania, a okazuje się problemem modelowania danych. Deep-dive o poprawnym reprezentowaniu pieniędzy, przechowywaniu cen w wielu walutach, kursach wymiany, zaokrąglaniu i błędach kosztujących prawdziwe pieniądze.
Zapytanie N+1 to najczęstszy błąd wydajnościowy w aplikacjach Rails i ukrywa się idealnie w developmencie. Deep-dive o tym, co je powoduje, różnicy między preload/eager_load/includes, counter cache i jak łapać je automatycznie.
Postgres 9.4 wnosi JSONB — indeksowalny, odpytywalny JSON wewnątrz kolumny relacyjnej. Deep-dive o tym, kiedy po niego sięgać, jak go odpytywać i indeksować, integracji z Rails 4.2 i o pułapce traktowania bazy SQL jak magazynu dokumentów.
Release candidate Rails 4.2 jest już dostępny. Spojrzenie na trzy najważniejsze zmiany — ujednolicone API zadań w tle, po cichu duży zysk wydajności w ActiveRecord i klucze obce wreszcie lądujące w migracjach.
Użytkownicy robią literówki, a dopasowanie dokładne po cichu ich zawodzi. Praktyczny deep-dive w rozmyte dopasowanie oparte na trigramach w Ruby — jak działa, jak je przyspieszyć i kiedy zamiast tego wepchnąć je do Postgresa.
Rails 4.0 właśnie się ukazał. Oto rzetelne, prosto z okopów spojrzenie na to, co wdrażamy na realnych projektach — strong parameters, kompromis Turbolinks, caching „matrioszki”, pierwszoklasowy Postgres i pułapki aktualizacji.