SQLite データベースのサイズまたはレコード数を制限し、最初の DB がいっぱいになると (制限まで) 新しい DB を自動的に作成するクラスまたはメソッドはありますか?
私の SQLite DB は最大 500 MB のサイズになる可能性があり、共有ホスティングでは機能しません。そこで、50MB 程度のデータベースを 10 個に分割したいと考えています。
それらのいくつかが作成された場合、これにより適切なデータベースから簡単に読み取ることもできますか?
SQLite データベースのサイズまたはレコード数を制限し、最初の DB がいっぱいになると (制限まで) 新しい DB を自動的に作成するクラスまたはメソッドはありますか?
私の SQLite DB は最大 500 MB のサイズになる可能性があり、共有ホスティングでは機能しません。そこで、50MB 程度のデータベースを 10 個に分割したいと考えています。
それらのいくつかが作成された場合、これにより適切なデータベースから簡単に読み取ることもできますか?
ATTACH
次のコマンドを使用して、1 つのセッション内で他のデータベースを開くことができます。
ATTACH '/data/db1.sqlite' AS db1; -- opens or creates that file
ATTACH '/data/db2.sqlite' AS db2;
CREATE TABLE db1.customers(...);
CREATE TABLE db2.product(...);
CREATE TABLE main.orders(...); -- "main" is the connection's default database
SELECT * FROM customers, orders WHERE orders.custid = customers.id ...
-- table names are searched for in all DBs
ただし、データベースを自動的に分割することはできません。各テーブル (およびそのインデックス) は、1 つのファイル内に完全に格納する必要があります。ほとんどのデータが 1 つのテーブル内にある場合、これはまったく役に立ちません。