wzrost rynku bazodanowego

jakoś mnie to ominęło i dopiero teraz zobaczyłem, że w połowie 2006 gartner opublikował raport nt. stanu rynku bazodanowego na świecie. raport tyczy się sprzedaży liczonej w dolarach, a nie w jednostkach, ale i tak jest mocno interesujący.

to co widać, to to, że oracle ma 48.6% rynku. czyli sporo.

ale ciekawsze jest dla mnie to, że od przynajmniej 4 lat microsoft i jego sql server mają około dwukrotnie większy wzrost (procentowo) niż cała branża. czytaj – mocno nadganiają ibm'a który ma miejsce 2 ( a kŧóry daje ciała, bo jeszcze niedawno był pierwszy!).

ciekawe jest też to, że w/g tego zestawienia na rynku liczą się: oracle, ibm, microsoft, teradata i sybase. wszyscy pozostali zostali wrzuceni do jednego worka pod hasłem “inni" 🙂

ale ten worek jest spory – to łącznie ponad 8% wartości rynku. czyli 1.1 miliarda dolarów.

ogólnie – na teraz największą bazą jest oracle. ale muszę przyznać, że patrząc na cyferki wzrostu – można założyć, że ms za parę lat oracle'a dogoni.

dbi-link

ukazała się nowa wersja – 2.0, pakietu dbi-link. jest to pakiet umożliwiający podłączanie postgresa do innych baz danych (innych instancji postgresa, albo po prostu zupełnie innych baz), w sposób możliwie przezroczysty dla użytkownika.

przy użyciu tego pakietu, dostajemy wirtualne tabelki na których możemy prawie normalnie pracować  (jeszcze nie można join'ować), nie przejmując się tym, że tak naprawdę są to tabelki z innych baz.

wersja 2.0 zawiera olbrzymie zmiany idące w kierunku poprawienia działania, stabilności oraz ogólnej odporności.

jak się sprawdzi – za wcześnie jeszcze na wyrokowanie, ale wygląda mocno interesująco.

jeśli chodzi o to do jakich baz można się podłączyć – praktycznie do każdej. jak nazwa wskazuje do immplementacji samego połączenia do zdalnej bazy jets używana biblioteka dbi z perla, a ona ma sterowniki praktycznie do wszystkiego.

drogie, piękne i szybkie

co to jest?

jest drogie. jest piękne. i jest szybkie.

nowe cudo aston martina. na razie faza “koncept", ale linie nadwozia wyglądają mocno znajomo, więc jest spora szansa, że ten samochód tak będzie wyglądał w seryjnej (ekhem) produkcji.

4 drzwi. przeszklony dach. i bagażnik na wino. coś ślicznego:


aston.martin.rapide.concept-01.jpg
aston.martin.rapide.concept-02.jpgaston.martin.rapide.concept-03.jpgaston.martin.rapide.concept-04.jpgaston.martin.rapide.concept-05.jpgaston.martin.rapide.concept-06.jpgaston.martin.rapide.concept-07.jpgaston.martin.rapide.concept-08.jpgaston.martin.rapide.concept-09.jpgaston.martin.rapide.concept-10.jpgaston.martin.rapide.concept-11.jpgaston.martin.rapide.concept-12.jpgaston.martin.rapide.concept-13.jpgaston.martin.rapide.concept-14.jpgaston.martin.rapide.concept-15.jpgaston.martin.rapide.concept-16.jpgaston.martin.rapide.concept-17.jpgaston.martin.rapide.concept-18.jpg

umiesz robić zdjęcia?

ja nie umiem. na szczęście. nie mam żadnych podstaw do tego by sądzić inaczej. ale gdyby mi kiedyś przyszło do głowy, że potrafię robić zdjęcia, to ta galeria fotografii makro by mi je rozwiała.

szybsze wifi w centrino. już!

intel potwierdził, że wprowadzi obsługę nowego standardu ieee 802.11n już do końca tego miesiąca!

jeśli nie wiecie co i jak – 802.11n jest nowym standardem który docelowo ma zastąpić używany teraz 802.11g. tak jak 802.11g ma prędkość maksymalną 54mbit, tak 80211n ma dawać pasmo do 540mbitów! i dodatkowo ma mieć większy zasięg – do 50 metrów w porównianiu do 30 metrów (w budynkach).

pierwsze lapy z nowymi centrino mają być wypuszczone przez acer'a, gateway'a i toshibę. ceny? zobaczymy. jak zawsze – nowości nie będą tanie.

amd kontratakuje. werbalnie.

intel dokopał amd na wszystkich frontach. w tym na tym co od dawna było niepodzielnie amd'owe – serwery 64bitowe, pod bazy danych. opteron padł u stóp woodcresta.

dodatkowo – intel już wypuścił procesory 4-rdzeniowe, a amd zwlekał.

i teraz przystąpił do kontrataku. niestety – tylko werbalnego – produktów nie zobaczymy.

amd mianowicie zapowiedział, że najnowsze 4-rdzeniowe opterony będą o 40% szybsze od najnowszych 4 rdzeniowych xeon'ów. tyle, że to nie jest produkt. to tylko zapowiedź. w dodatku zapowiedź informująca, że produkt ma być w połowie 2007. czyli – gruszki na wierzbie. po pierwsze – nadal nie ma produktu. po drugie – w połowie 2007 intel może wypuścić kolejną serię xeon'ów. po trzecie – wydaje mi się, że amd trochę za bardzo skupił sie na integracji z niedawno kupionym ati, i zaniedbał rynek serwerowy.

zasadniczo jestem fanem opteronów i amd. dlatego mam nadzieję, że faktycznie obietnice się spełnią, a potem pokażą coś jeszcze lepszego.

mysql rządzi? indeksy pokrywające

przeczytałem właśnie o pewnej funkcjonalności mysql'a o której wcześniej nie wiedziałem. w dodatku – której postgresql nie ma!
chodzi o indeksy pokrywające.
co to jest?
ogólna idea polega na tym, że silnik bazodanowy może wykorzystać do zwracania wartości wartości pobrane z indeksu a nie z tabeli.
kumacie coś z tego? pewnie nie. ja też nie. więc przykład.
mamy tabelkę:

# create table zakupy (id serial primary key, user_id int4, kwota int4);

piszę po postgresowemu, ale chodzi o pokazanie idei.
teraz.
często potrzebujemy zrobić zestawienie nt. łącznej sumy kwot zakupów użytkownika. czyli wynik zapytania:

select sum(kwota) from zakupy where user_id = <costam>

aby to przyspieszyć robimy indeks na pole user_id:

create index x on zakupy (user_id).

i jest lepiej.
system działa tak, że wyszukuje które rekordy w tabeli powinien wziąść pod uwagę (przy pomocy indeksu), potem je znajduje w tabeli, odczytuje, sumuje i zwraca.
proste.
ale wbrew pozorom mało wydajne.
w mysql'u jest coś takiego jak rzeczone indeksy pokrywające.
oznacza to, że jeśli zrobimy indeks:

create index x on zakupy (user_id, kwota).

to mysql użyje tego indeksu w dwóch celach:

  1. do znalezienia odpowiednich rekordów
  2. do pobrania kwot do zsumowania

na czym polega rewolucja? nie trzeba sięgać do tabeli by znaleźć dane!
szybkie. wydajne. zajebiste. tyle, że zżera trochę więcej miejsca na dysku. ale to jest tani zasób.
covering indices nie są domeną mysql'a. mają je też inne bazy. szybki searchmash pokazał, że na pewno są one obecne też w mssql'u (więc pewnie w sybase też). zgaduję, że oracle i db2 też je mają.
a czemu postgres nie? no cóż. temat był kilkukrotnie poruszany na liście pgsql-hackers, ale okazało się, że ze względu na mvcc sprawa jest mocno skomplikowana. i (na razie) nie ma. muszę przyznać, że jest to pierwsza rzecz jakiej (jako postgresowiec) zazdroszczę mysql'owi.