2009-09-23 15 views
7

Estoy tratando de encontrar una biblioteca para acceder a una base de datos desde un programa OCaml. Después de intentar ocaml-sqlite, no estoy satisfecho, ya que es algo lento.Enlace de base de datos para OCaml?

he visto un módulo de MySQL, pero no parece ser mantenida.

+0

siempre se puede escribir sus propias interfaces C para el db/funcionalidad que necesita ... pero he utilizado ocaml-mysql para un proyecto pequeño (sólo se utiliza simple, insertar/actualizar/consultas de selección, sin embargo). – nlucaroni

+0

pero ¿funciona ocaml-mysql con las últimas versiones de mysql? ¿Debería usar postgres? Eso es algo básico de DB. – LB40

+0

Utilizo mysql-ocaml con un db remoto mysql v5. Aunque, mis operaciones específicas no son v5 específicas, como se mencionó. – nlucaroni

Respuesta

6

Ha comprobado la Caml Hump? Tiene enlaces a un montón de enlaces de bases de datos.

buenos, maduros, fijaciones que puedo recomendar son PG'OCaml por Richard Jones y PostgreSQL-ocaml por Markus Mottl. Ambos están dirigidos a Postgresql (que es probablemente una mejor opción para ti, considerando que estás en Ocaml).

+0

seguro, lo he comprobado ... mi preocupación era que los últimos lanzamientos parecían bastante viejos. Entonces, quería saber qué estaban usando realmente las personas. – LB40

+0

¿Qué quieres decir con bastante viejo? En el caso de PG'OCaml, la última versión tiene pocos meses y parece haber actividad constante en SVN. En cuanto a postgresql-ocaml, no hay un nuevo lanzamiento porque no hay necesidad de actualizar lo que funciona bien ... :-) –

+0

ok, mi mal, no fui al nuevo sitio web de PG'Ocaml. y para postgresql-ocaml, no quería invertir tiempo en algo que no puedo usar. Gracias. – LB40

2

estoy bastante sorprendido de que a encontrar los enlaces ocaml-sqlite lento. sqlite es rápido por sí mismo, y creo que los enlaces sqlite están muy bien escritos. Usted debe asegurarse de que está utilizando la puesta al día de la unión Markus Mottl's page

+0

tal vez soy un poco exigente, estoy analizando un archivo de texto de 100 Mo y construyendo una base de datos. Tengo muchas inserciones que hacer, así que tuve que ser más inteligente con respecto a las llamadas al ejecutivo. Estoy usando la última versión. No sé cuál es la penalización de rendimiento inducida por el IO a la base de datos. archivo – LB40

+1

Solo 100Mo ?! Lo analizo mientras duermo ... ¡literalmente! – nlucaroni

+0

no sé qué responder :-). ¿Lo estás analizando mientras duermes porque lleva tanto tiempo que te duermes? – LB40

3

obras ocaml-MySQL sin problemas aquí - MySQL API para conectar/consulta/operación fetch no cambia mucho :) Carece de declaraciones preparadas sin embargo, tuve que implementar los contenedores mysql_stmt_ * yo mismo.

+0

Utilizo bastante los enlaces de MySQL, incluido el soporte de declaraciones preparadas. Funcionan bien con 5.0.xy 5.5.x en mi experiencia. – hcarty

0

Si su base de datos es PostgreSQL, recomiendo ocaml-postgresql. (También hay ocaml-sql, lo que hace que algunas operaciones de SQL más adecuado cuando se utiliza ocaml-PostgreSQL.)

Desde PG'OCaml depende en gran medida del sistema de tipos en tiempo de compilación del OCaml, es imposible componer consultas en tiempo de ejecución, lo que hace, en mi opinión, no es útil en la mayoría de los escenarios del mundo real.

Cuestiones relacionadas