# Why do you use JuliaDB?

**URL:** <https://discourse.julialang.org/t/why-do-you-use-juliadb/30410>\
**Category:** General Usage\
**Created:** [October 27, 2019, 10:08pm UTC](https://discourse.julialang.org/t/why-do-you-use-juliadb/30410 "2019-10-27T22:08:54Z")\
**Posts on this page:** 1\
**Showing post:** 5

<div class="post-metadata">

**Author:** ![piever](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/piever/32/1815_2.png) [@piever](https://discourse.julialang.org/u/piever)\
**Post date:** [October 28, 2019, 11:09am UTC](https://discourse.julialang.org/t/why-do-you-use-juliadb/30410/5 "2019-10-28T11:09:31Z")

</div>

> [@What's the difference between CSV.jl and CSVFiles.jl?](https://discourse.julialang.org/t/whats-the-difference-between-csv-jl-and-csvfiles-jl/17950/20):
>
> The main issue I have with JuliaDB is the huge compilation time for reading wide CSV tables with missing values. The usage of StructArrays in IndexedTables seems to be the cause of this behavior, and I feel that it would be well worth it to change to another backing data structure which doesn’t encode the column types in the final table type, at least as the default for interactive usage.

Not sure if this is useful, but JuliaDB has a basic “untyped table” type `ColDict`. It is used to implement operation that mutate columns efficiently. A possible approach would be to load things as a `ColDict` and only use a fully typed version when a small subset of columns is needed for an operation (which happens with `select` keyword in IndexedTables or with macro magic in JuliaDBMeta).

There was even some discussion to use a `DataFrame` instead of `ColDict` (so that it would be thing that can be manipulate more easily by the user), which now that `DataFrames` is more lightweight, seems feasible. This would need IndexedTables to drop the “nameless table” (where columns are just numbered) and DataFrames to implement a notion of primary keys.

> [@What's the difference between CSV.jl and CSVFiles.jl?](https://discourse.julialang.org/t/whats-the-difference-between-csv-jl-and-csvfiles-jl/17950/20):
>
> Adding a CSV.jl frontend to JuliaDB is also a great idea, IMO.

💯

---

_[View the full topic](https://discourse.julialang.org/t/why-do-you-use-juliadb/30410)._
