Beefy Boxes and Bandwidth Generously Provided by pair Networks
There's more than one way to do things
 
PerlMonks  

Re^6: is Sqlite db good enough to handle large data.

by bliako (Monsignor)
on Jul 22, 2019 at 11:12 UTC ( [id://11103131]=note: print w/replies, xml ) Need Help??


in reply to Re^5: is Sqlite db good enough to handle large data.
in thread is Sqlite db good enough to handle large data.

Is there a higher level DB API you recommend so that the program keeps the same if/when changing to another DB?

Replies are listed 'Best First'.
Re^7: is Sqlite db good enough to handle large data.
by Your Mother (Archbishop) on Jul 22, 2019 at 13:50 UTC

    DBIx::Class fits the bill largely. As long as one doesn't embed incompatible raw SQL and understands the limitations in SQLite. SQLite is somewhat easy to mock simplistic functionality for other engines too. Here is a snippet I use to help DBD::SQLite pretend to be MySQL for testing–

    if ( $dbh->{Driver}->{Name} eq "SQLite" ) { require Date::Calc; $dbh->sqlite_create_function("NOW", 0, sub { sprintf('%d-%02d-%02d %02d:%02d:%02d', Date::Calc::Today_a +nd_Now()); }); require Math::BigInt::Random; $dbh->sqlite_create_function("RAND", 0, sub { Math::BigInt::Random::random_bigint( min => -9223372036854 +775808, max => 9223372036854775807 ); }); }

    Update: I want to mention because it likely seems I am saying the opposite: MySQL is half-garbage and I would never choose it unless constrained to do so by managers, tools, support… PostgreSQL and MariaDB (a MySQL fork that tries to correct a lot of the idiotic defaults and such) are better choices for open source RDBMS.

Re^7: is Sqlite db good enough to handle large data.
by erix (Prior) on Jul 22, 2019 at 20:44 UTC

    The DB API is SQL

      Agreed. I meant how to avoid using db-specific SQL in our scripts and let a module do that instead. For example the use of sqlite_create_function() in YourMother's response.

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://11103131]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others about the Monastery: (5)
As of 2024-03-28 16:00 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found