- dodaj komentarz
-
oceń wpis
- linkuj
- dodaj do historyjki
-
wsl @mlen - to jasne, że gdzieś te dane muszą być i ja je dalej trzymam w MySQL, bo pod pewnymi względami jest to ciągle potężniejsze narzędzie. Po prostu do tego rodzaju SELECT'ów, których używam, opłaca się trzymać wszystko także w Sphinx'ie i na nim operować. Jest po prostu bajecznie szybki a skaluje się, póki mi możliwości starczyły na sprawdzenie -- liniowo.
Nie jestem specem od Postgresa, ale z tego co wiem, to jest bardzo dobry w INSERT'ach -- połączenie go ze Sphinx'em mogłoby dać naprawdę zabójczy kombajn. [odpowiedz]
- dodaj komentarz
-
oceń wpis
- linkuj
- dodaj do historyjki
[mysqlperformanceblog.com/.../04/08/fast-ssd-or-more-m...
- dodaj komentarz
-
oceń wpis
- linkuj
- dodaj do historyjki
[tokutek.com/...10/04/tokutek-acquires-or...
- dodaj komentarz
-
oceń wpis
- linkuj
- dodaj do historyjki
Potrzebowałem uruchomić #Sphinx'a przez nieuprzywilejowanego użytkownika, jednak instalacja z repozytoriów #Debian'a powoduje, że tenże gości na prawach root'a. Pozmieniałem co trzeba żeby uruchomił się jako ja, ale pozostawał problem uruchamiania go przy starcie systemu -- gdyby do takiego doszło straciłbym możliwość rotacji indeksami, a to byłby niejaki ból. Pomajstrowałem więc przy skrypcie /etc/init.d/sphinxsearch i tam okazało się, że demon startuje przy użyciu start-stop-daemon, która to ma opcję --chuid, z której można skorzystać do zmiany użytkownika, na którego prawach aplikacja będzie uruchamiana. Działa, ale szczerze mówiąc bardziej mi się podoba rozwiązanie, które ma w sobie ot choćby #MySQL -- ustawianie użytkownika w configu. Tego Sphinx nie ma. Ale może ma jakieś ładniejsze rozwiązanie -- ktoś zna?
- dodaj komentarz
-
oceń wpis
- linkuj
- dodaj do historyjki
-
wsl dodałem tego flaka do historyjki:Marysia i Sfinks
[mysqlperformanceblog.com/...0/03/26/tables-fit-buffer...
- dodaj komentarz
-
oceń wpis
- linkuj
- dodaj do historyjki
- dodaj komentarz
-
oceń wpis
- linkuj
- dodaj do historyjki
-
anakh komentarz usunięty [odpowiedz]
-
wsl komentarz usunięty [odpowiedz]
-
anakh @wsl - ok dasz radę [odpowiedz]
-
wsl Ja dam, ale czy serwer da :> [odpowiedz]
-
anakh @wsl - kto nie próbuje ten nie wie , trzeba czasem zaryzykować:> [odpowiedz]
-
wsl Taa... Po zmianie bazy danych okazało się, że pół systemu mi nie działa... Jak nie urok to srrr... ebrne wesele. [odpowiedz]
-
anakh @wsl - nic to #wiosna [odpowiedz]
-
wsl dodałem tego flaka do historyjki:Marysia i Sfinks
- dodaj komentarz
-
oceń wpis
- linkuj
- dodaj do historyjki
- dodaj komentarz
-
oceń wpis
- linkuj
- dodaj do historyjki
-
bozydar @wsl - nic nie rozumiem z Twojego wpisu :)))) ale ja nie z tej bajki [odpowiedz]
-
ahilles107 @bozydar - lol ;) [odpowiedz]
-
wsl Bramka nr 1 zawiera normalne podejście do alternatywy -- 3 kolumny (na nich zwykły indeks), 2 razy OR i tyle.
Bramka nr 2 zawiera indeks pełnotekstowy założony na kolumnie, która zawiera w sobie tekst ze wszystkich trzech kolumn -- i na tej kolumnie robimy wyszukiwanie pełnotekstowe, w którym robimy OR.
Bramka nr 3 to zasadniczo to samo, tylko wykonane w Sphinxie.
Moim zdaniem MySQL Fulltext odpadnie w przedbiegach. Jest katastrofalnie powolny.
Nie mam natomiast pewności, czy Sphinx poradzi sobie z tym zadaniem lepiej niż normalne indeksy MySQLowe. A fakt, że zwraca id nie stanowi problemu -- zwraca je do bazy (jeżeli oczywiście korzysta się z SphinxSE) a ona od razu wyciąga odpowiednie rekordy.
Moim zdaniem lepiej jest tutaj inwestować w optymalizację MySQL niż kombinowanie z nie wiadomo jakimi rozwiązaniami. [odpowiedz] -
wsl @mlen - ja za to jestem Sphinx loverem. Zamierzam się przesiąść niedługo z jednym projektem właśnie na niego tylko muszę zrobić "extensive testing" jak wygląda jego wydajność w przypadku łączenia indeksów i w ogóle indeksowania. Mam bowiem aplikację, która dość często robi inserty i indeks się regularnie zmienia. Z drugiej strony mógłbym w końcu całkowicie zrezygnować z pieprzonego MyISAM. Jaka byłaby to ulga... [odpowiedz]
-
wsl Zrobiłem właśnie testy i nie będę robił merge'owania. Wystarczająco krótko trwa rotate'owanie indeksów ;) [odpowiedz]
- pokaż wszystkie komentarze (27)
Bo to nieprawda. Przynajmniej nie zawsze.
Ponieważ nie znalazłem informacji o tym, by w swoich build'ach Percona dorzucała Thread Caching Malloc (wprost przeciwnie, czytałem maile ich pracowników o nieciekawych wynikach ich wewnętrznych testów), więc postanowiłem operować właśnie na tej podstawie -- 5.1.42 z XtraDB -- jeśli ktoś znajdzie taką informację, to oczywiście całe testy pójdą w łeb, ale nie sądzę.
- dodaj komentarz
-
oceń wpis
- linkuj
- dodaj do historyjki
-
wsl Wykonałem pewne testy na swojej aplikacji wyszukującej, którą postawiłem na cloud serverze -- nie oszukujmy się, osoby, które zaczynają swoją przygodę ze startup'em nie zawsze mają pieniądze na dedykowany serwer. I co ciekawe tu tkwi sedno problemu, bo jedyne, co mogę dostać do takiego #Rackspace, to 4 rdzenie. I choć twórcy tcmalloc'a dają do zrozumienia, że zaletą jest skrócenie czasu adresowania, to w praktyce okazuje się, że te zalety są widoczne dopiero przy dużej ilości rdzeni -- 8 i więcej -- i dużej liczbie jednoczesnych sesji. [odpowiedz]
-
wsl Gdy sam uruchomiłem #httperf do zmierzenia ile requestów obsłuży mi baza w ciągu sekundy bez tcmalloc'a a ile z, wyniki były takie (bez / z [req. per sec.]):
-- skomplikowane zapytanie, strona niecache'owana: 29,4 / 32,4
-- skomplikowane zapytanie, strona cache'owana: 93,8 / 94
-- proste zapytanie, strona niecache'owana: 86,2 / 87,2
-- proste zapytanie, strona cache'owana: 128,9 / 132,5
Wyniki w granicach błędu statystycznego. A muszę nadmienić, że użycie pamięci w MySQL było duże -- cache'owanie odbywa się w postaci tabeli HEAP. Dzięki temu następne zapytania zasuwają jak dziki bawół.
Więc jeśli nie masz odpowiednich warunków nie oczekuj, że tcmalloc będzie motorkiem w d... Twojego MySQL'a. [odpowiedz] -
iktorn Co Ty na to @az? :) [odpowiedz]
-
az @iktorn - imho profiler nie kłamie. [odpowiedz]
-
wsl Może dorzucę jeszcze dwa linki znalezione w necie, z wynikami które zdają się potwierdzać to, o czym mówię -- tcmalloc pomaga MySQL'owi przestać się dławić, gdy jest tłoczno -- 8, 16+ równoległych wątków, na maszynach z 8 i 16 rdzeniami. Od 1 do 4 różnica może być niezauważalna. Jeżeli u kogoś jest, to ma niezłego farta ze scenariuszem... [lists.launchpad.net/...cona-discussion/msg00337....
| mail-archive.com/...ssion@lists.launchpad.net...
] [odpowiedz]
[mysqlperformanceblog.com/...xtradb-storage-engine-rel...
- dodaj komentarz
-
oceń wpis
- linkuj
- dodaj do historyjki
- dodaj komentarz
-
oceń wpis
- linkuj
- dodaj do historyjki
[blog.some-abstract-type.com/...9/12/chessboard-in-mysql....
- dodaj komentarz
-
oceń wpis
- linkuj
- dodaj do historyjki
-
alex-pl fajne!
-
bziuum fajne!
-
Mekk eee, myślałem że to jakiś algorytm grania a to tylko rysunek ;-)
Z ciekawostek: aquarium (taki stosunkowo nowatorski program do analizowania partii) używa sqlowej bazy danych. [odpowiedz] -
wsl Ale procedur SQLowych czy po prostu bazy danych? [odpowiedz]
-
wsl Wiesz o co mi chodzi -- jak głębokie jest zaangażowanie bazy... [odpowiedz]
-
Mekk Po prostu bazy danych (używa jej zdaje się do ewidencjonowania ewaluacji pozycji i podobnych rzeczy). [odpowiedz]
Przede wszystkim #InnoDB Plugin 1.0.5 wbudowany bezpośrednio w serwer. Żadnego importowania, żadnego rejestrowania -- po prostu jest. Cud, miód.
Ponadto "pół-synchroniczna" replikacja opracowana na podstawie gugielskiego patcha do InnoDB, tyle że w 5.5 jest ona niezależna od silnika. Tutaj jednak potrzeba odrobiny konfiguracji, ale odrobinę wysiłku rekompensuje wynik.
Partycjonowanie -- w końcu można nie tylko po zasięgu na kolumnach całkowitoliczbowych ale także po datach czy tekście. Dla niektórych pewnie zwłaszcza kwestia daty będzie dobrą wiadomością.
A na koniec wyjątki w postaci COLGAT... tj. SIGNAL i RESIGNAL we własnych procedurach -- czego się nie robi dla debugowania?
I tak się póki co betonowa (taka była nazwa kodowa 5.5 -- #Betony) baza danych rozwija. Szkoda, że póki co, to wciąż milestonowa beta.
- dodaj komentarz
-
oceń wpis
- linkuj
- dodaj do historyjki
Wpisałem w to Wrr... aż mi nazwa nie przechodzi przez gardło... "BMW 123d", fajne małe autko, z dwulitrowym dieselkiem. W wynikach wyszukiwania jako ogłoszenie premium dostałem, tadaaaa, Forda Transita, potem już lepiej, bo Beemki, tyle że trójki, piątki, a nawet siódemki czy X5...
Dobra, przekonfigurowujemy zapytanie: "BMW 1, 2.0 diesel". Jeszcze gorzej... Pozostaje dalej szukać na otomoto i innych, bo ten agregator nie nadaje się do niczego.
Ciekawe jest to, co się dzieje po wpisaniu "Mercedes S". Nagle S znika.
I takie "cudo" dostaje Webstara od Internautów. Oj ostro się V10 wybuli za wysłane na siebie SMSy, ostro... #FAIL.
- dodaj komentarz
-
oceń wpis
- linkuj
- dodaj do historyjki
-
wsl @mlen - ta, no, mhm. [odpowiedz]
-
wsl A myślisz, że im spada oglądalność, bo nie ma zapotrzebowania na taki serwis? Nie, po prostu wchodzisz, patrzysz, że jest do dupy i wracasz do starej metody thank-you-God-for-tabbed-browsing. [odpowiedz]
-
bartosz polecam cartoteka.pl
, wychodzimy trochę dalej niż like %query% ;) [odpowiedz]
-
wsl @bartosz - mam mechanika w rodzinie, jak będę potrzebował to na pewno skorzystam. Tutaj narzekam na wyszukiwarki ogłoszeń. [odpowiedz]
-
psphone lol!
- pokaż wszystkie komentarze (16)
Aplikacja, którą męczyłem serwer to pewnego rodzaju wyszukiwarka, napisana w #Perl'u (cudowna łatwość programowania #FastCGI), mająca na celu inteligentnie rozpoznawać słowa, poprawiać pomyłki przy pomocy algorytmu #Levenshtein'a, a potem wszystko przemielić przez to, co się znajduje w #MySQL'u, w dwóch tablicach -- jednej w #XtraDB i jednej w #MyISAM ze względu na #fulltext'owy index. Ostatecznie zadowolony byłbym gdyby latało to powiedzmy 30 requestów na sekundę. Póki co śmiga to w zależności od skomplikowania zapytania od 60 do 90 req/sec., przy czym wiem, że Perl'a już nie przyspieszę. Wiem natomiast, że mogę wyklikać wzmocnienie mocy przerobowych mojego serwera no i zawsze dostawić drugą, trzecią, piątą wirtualną maszynę obok.
Gdyby klonowanie w realu było takie proste ;)
- dodaj komentarz
-
oceń wpis
- linkuj
- dodaj do historyjki
-
wsl dodałem tego flaka do historyjki:Serwer w chmurach
- dodaj komentarz
-
oceń wpis
- linkuj
- dodaj do historyjki
-
alex-pl lol!
- dodaj komentarz
-
oceń wpis
- linkuj
- dodaj do historyjki
• #XtraDB 1.0.4-8, czyli ósma już wersja ich zmodyfikowanej wersji silnika #InnoDB plugin, tym razem oparta na najnowszej, bardzo dobrej wersji 1.0.4. Przyznam, ze sam czekałem na to z niecierpliwością. Zwłaszcza, że Percona uruchomiła swoje repozytorium dla #Debiana. Dla tego, co poniżej, też.
• #xtrabackup -0.9.5rc, czyli coś do robienia backupów baz InnoDB/XtraDB również na gorąco. Chłopaki mówią, że mimo iż nie jest to jeszcze numerowane jako stabilne, to korzystają z tego już u swoich klientów.
• I w nawiązaniu poniekąd do czegoś o czym mówił @hazan (flaker.pl/...eases-relational-database... inne wpisy na ten temat ) -- obraz AMI z XtraDB zainstalowaną na #CentOS'ie 5,3 dla #Amazon #EC2.
- dodaj komentarz
-
oceń wpis
- linkuj
- dodaj do historyjki
-
iktorn a w related news amazon wypuscil hosted mysql [odpowiedz]
-
wsl No to właśnie o tym pisał @hazan. [odpowiedz]
- dodaj komentarz
-
oceń wpis
- linkuj
- dodaj do historyjki
- dodaj komentarz
-
oceń wpis
- linkuj
- dodaj do historyjki
- dodaj komentarz
-
oceń wpis
- linkuj
- dodaj do historyjki
- dodaj komentarz
-
oceń wpis
- linkuj
- dodaj do historyjki
- dodaj komentarz
-
oceń wpis
- linkuj
- dodaj do historyjki
- dodaj komentarz
-
oceń wpis
- linkuj
- dodaj do historyjki
Ładuję...
