2017-12-21 5 views
-2

JSONファイルをSQLiteデータベースにインポートしています。最初は、私はちょっと、このように見えたテーブルにJSON-オブジェクトをインポート:いくつかの理由JSONからSQLへのインポート時間が短くなる - なぜですか?

CREATE TABLE table_name (
    column1 STRING, 
    column2 STRING, 
    column3 STRING, 
    column1 STRING, 
    column2 INT, 
    column3 STRING, 
); 

、それはプログラムがデータをインポートするためのloooong時間がかかった(JSONファイルがかなり大きかったです)ので、私はインポート時間を減らすための私のオプションに探していた。

CREATE TABLE table_name (
    column1 NOT NULL PRIMARY KEY, 
    column2 NOT NULL, 
    column2 NULL, 
    column2 TEXT NULL, 
    column3 INT NOT NULL, 
    column2 NOT NULL, 
); 

突然、JSONのインポートに約半分の時間がかかりました。私の質問は、なぜ輸入時間が改善されたのかということです。制約は、データベースを「安全」に保つか、ビジネスロジックを定義するだけであるとは限りませんか?データベース内

+0

あなたはどのように行を挿入されましたか? SQLiteはVARCHAR(10)をSTRINGとは異なるものとして扱いません。また、プライマリキーが既にユニークであるため、ユニークプライマリキーは冗長です。 NOT NULLを指定すると、挿入が成功する前に列の値がNULLでないことがチェックされます。あなたの報告された違いを説明するものはありません。 –

+0

@DanD。うん、あなたは正しいので、私はVARCHAR(更新された質問、すべての列タイプを追加)を削除しました。それでも、NOT NULLなどの制約を追加してインポート時間を改善します。 – Jesper

+0

@DanD。私は両方の例のexakt同じ行の挿入構文を行っています – Jesper

答えて

0

誰もがより良い答えを持っていない場合は、私の推測では、行がより少ないスペースを占有していることであり、それはそれが簡単に挿入し、重複を調べるためになります

関連する問題