2009-09-23 22 views
7

Próbuję znaleźć bibliotekę, aby uzyskać dostęp do bazy danych z programu OCaml. Po próbie ocaml-sqlite, nie jestem zadowolony, ponieważ jest nieco powolny.Wiązanie bazy danych dla OCaml?

Widziałem moduł MySQL, ale nie wydaje się być utrzymywane.

+0

zawsze możesz napisać własne interfejsy C dla potrzebnej db/funkcjonalności ... ale użyłem ocaml-mysql dla małego projektu (tylko używane proste, wstaw/aktualizuj/wybierz zapytania). – nlucaroni

+0

ale czy ocaml-mysql działa z ostatnimi wydaniami mysql? Czy powinienem raczej używać PostgreS? To raczej podstawowe rzeczy DB .. – LB40

+0

Używam mysql-ocaml ze zdalnym db mysql v5. Mimo, że moje konkretne operacje nie są specyficzne dla v5, jak wspomniano. – nlucaroni

Odpowiedz

6

Czy sprawdziłeś numer Caml Hump? Zawiera łącza do wielu powiązań z bazami danych.

Dobre, dojrzałe, wiązanie, które mogę polecić to PG'OCaml Richarda Jonesa i postgresql-ocaml Markusa Mottla. Oba są skierowane na Postgresql (co jest prawdopodobnie lepszym wyborem, jeśli myślisz, że jesteś w Ocaml).

+0

Oczywiście, sprawdziłem to ... martwiłem się, że ostatnie wydania wydają się dość stare. Więc chciałem wiedzieć, czego ludzie używają. – LB40

+0

Co masz na myśli przez dość stary? W przypadku PG'OCaml najnowsza wersja ma kilka miesięcy i wydaje się, że w SVN jest stała aktywność. Jeśli chodzi o postgresql-ocaml, nie ma nowej wersji, ponieważ nie ma potrzeby aktualizowania, co działa dobrze ... :-) –

+0

OK, mój zły, nie poszedłem do nowej strony internetowej PG'Ocaml. a dla postgresql-ocaml nie chciałem inwestować czasu w coś, z czego nie mogę skorzystać. dzięki. – LB40

2

Jestem dość zaskoczony, że wiązania ocaml-sqlite są powolne. sqlite jest szybki i wierzę, że powiązania sqlite są bardzo dobrze napisane. Należy upewnić się, że używasz up-to-date wiązania z Markus Mottl's page

+0

Może jestem trochę wymagający, parsuję plik tekstowy 100 Mo i buduję bazę danych. Mam wiele wstawek do zrobienia, więc musiałem być bardziej sprytny w odniesieniu do połączeń z exec. Używam ostatniej wersji. Nie wiem, jaka jest kara za wydajność wywołana przez IO w bazie danych. plik – LB40

+1

Tylko 100Mo ?! Analizuję to podczas snu ... dosłownie! – nlucaroni

+0

Nie wiem, co odpowiedzieć :-). Parsujesz to podczas snu, ponieważ zajmuje to tyle czasu, że zasypiasz? – LB40

3

prac SML-mysql bez problemów tutaj - mysql API dla Połącz/zapytania/pobieraniu nie tyle zmienić :) Brakuje przygotowanych sprawozdań Mimo to musiałem zaimplementować opakowania mysql_stmt_ *.

+0

Korzystam z powiązań MySQL dość mocno, łącznie z przygotowaną obsługą instrukcji. Działają dobrze z 5.0.x i 5.5.x z mojego doświadczenia. – hcarty

0

Jeśli twoja baza danych to PostgreSQL, polecam ocaml-postgresql. (Jest też ocaml-sql, co sprawia, że ​​niektóre operacje SQL wygodniejsze przy użyciu SML-PostgreSQL.)

Od PG'OCaml mocno opiera się na systemie typu kompilacji czasowej SML za niemożliwe jest, aby utworzyć kwerendy w czasie wykonywania, co czyni go, moim zdaniem nie jest przydatny w większości scenariuszy w świecie rzeczywistym.

Powiązane problemy