• 締切済み

SQLite3の許容される登録数は?

商品管理のプログラムを組んでいるのですが データベースに「SQLite3」を使いたいと思っています。 SQLite3が、安定して動作できる、登録数(行数)はどれくらいでしょうか。 又は、これくらい登録したら、動作が不安定になった/遅くなったなどの情報でも構いません。 ちなみに、商品データベースといっても、商品名と、価格くらいしか記録しません。 ググってみたのですが、それらしい情報が無くて・・・。 宜しく御願いします。

みんなの回答

回答No.2

 dbの初心者さんかな?  dbをSQLiteから覚えるのはちょっと危険ですね。  SQLiteはユーザという概念もない超軽量dbで、ファイル1個をコピーすればバックアップが完了というお手軽です。しかし、それはdbを理解していて開発時にdb構築などの工程をできるだけ簡略化して本来のアプリケーション開発に専念してアプリケーションの完成度を高めたいという場合に有効と思います。  SQLiteは、SQL的には他のdbとほぼ遜色ないレベルと思いますが、dbシステムという観点で比較すると、ユーザーという概念がないなどセキュリティーは貧弱というより、セキュリティーがないと考えて差し支えないと思います。 また、型も文字列しかない?ないなど、本格的に使うには機能不足の面は見逃しがたい点があります。  PostgreSQL, MySQLもWindows版がリリースされているしインストーラーもあるのでインストールは比較的簡単です。 管理は、SQLite < MySQL < PostgreSQL < Oracle という感じで面倒になります。  私はOracleから覚えたのでSQLiteは本当にSQLが使えるの? と思うほど軽いですが、用途を限定すればOracleと大きな差がないにも事実です。  いちどWebで MySQLやPostgreSQLを調査した方が良いと思います。  私の環境はタワー型のPCで、Apache, PHP, SQLite, MySQL をインストールしても快適に使えますが、たぶんノートPCでもMySQLでも問題ないと思います。  最初の回答で忘れましたが・・・SQLiteに限りませんが、大量のデーターをINSERTする場合は、オート・コミットをoffにしないと非常に遅く( 10倍程度? )なるので必ずoffにしましょう。 ほとんどのdbでディフォルトはONです。

masapiyochan
質問者

お礼

ありがとうございます。 以前に、MySQLを利用したプログラムを組んだことはあります。 DBをSQLiteから覚えたわけではありません。 MySQLは私のPCや、私の自宅サーバにも入れていますから、 インストールが然程難しくないことも知っています。 >型も文字列しかない?ないなど、本格的に使うには機能不足 それで構わないから、それを理解した上で、利用を考えています。 セキュリティーが無いことも、勿論承知しています。 今回は、それで十分なんです。 MySQLなどは、なんといってもインストールが必要であり、 ファイルサイズも、SQLite並には軽くありません。 ソフトウェアに、単体でバンドルできるシンプルさを求めて、 私は、SQLiteを選びました。

回答No.1

実用的なdbとしてSQLiteは不向きと思いますが・・・  パフォーマンス測定で10万件程度のデーターを Read/Write した事ありますが快適に使えましたよ。フィールドはID,商品名、価格の3個で、1レコード100(Byte)以下です。 PHPを使っているならPDOを利用してアプリを作成すると、開発はSQLite、実用アプリはMySQLというようにdbの切り替えが簡単にできます。

masapiyochan
質問者

お礼

ありがとうございます。とても参考になりました。 フリーウェアで使用するデータベースのことなんですが、 どうしても、MySQLなどのデータベースの場合、インストールするか、 サーバーを用意するかが必要になってきますので・・・。 SQLiteの場合とてもシンプルに、EXEファイル単体だけで動作するという理由から 使用しようと考えていました。

関連するQ&A

  • EXCELからデータベース(SQLite)に登録

    EXCELの各セルのデータをデータベースに登録したいのですが、調べてもいまいちピンと来ないので質問させて頂きました。 データベースの内容を読み込んでEXCELに表示・保存させることはできたのですがEXCELからデータベースに登録する方法が解りません。 データベースからEXCELへの方法はPHP言語でCSV変換ファイルを作成しました。できれば逆もPHP言語で変換ファイルを作成したいと思っています。 適当なツール名やサンプルプログラムがあると助かります。 宜しくお願いします。 環境 OS:XP 言語:PHP5.1.6 ローカルサーバ:Apache2.0 データベース:SQLite

    • ベストアンサー
    • PHP
  • SQLiteでご教示願います。

    SQLiteでご教示願います。 DB(MyTable)を 商品名(Koumoku) | 価格(Nedan) | 登録日付(Hizuke) の項目で記録していると仮定して、1日分だけのデータを取り出す際、 もし、今日が2010年10月26日なら select sum(価格) from MyTable where Koumoku ='商品名(ごはん等)' and Hizuke = '2010-10-26' とすれば1日分取得できますが、 日々1日分だけ取得して表示したいと思っています(26日だけ、27日だけと1日から30日まで)。 そのため、'2010-10-26'の部分をPC等のシステムの日付から取得するようにしたいのですが、date(now)等を使ってもうまく行きません。 よろしくお願いいたします。

    • ベストアンサー
    • MySQL
  • MySQLは難易度が高いのでSQLiteで構築

    お世話になります。 現在Web上で動作する商品管理のツールをPHP+pdo+MySQLでデータベースを構築しています。 MySQLでの構築は初めてで、いろいろ手間がかかっています。 今まではPHP+pdo+SQLiteでデータベースを構築していました。 しかし同時書き込みでデータベースがロックしてしまうSQLiteの仕様では複数人数での運用ができません。 そこでMySQLに変更しようと思ったのですが、いろいろ覚えることが多くて時間がかかってしまっています。 やはりSQLiteの構築のしやすさは魅力的です。 そこで、MySQLでの構築を一旦中止し、SQLiteで構築しようかと思っています。 PHP側で工夫してSQLiteのデータベースへの同時書き込みを無くせば運用的には問題なさそうでしょうか? セキュリティ的に不安ですがデータベースはルートより上に置きます。 助言があればお願い致します。

  • PHP5でSQLiteが接続エラーを出します

    PHPには初心者です(データベースには多少知識有るはず)。 PHPからSQLに商品データを登録するシステムを作っていますが、データベースに接続することができません。 繋げるためにはどこを直したらよいでしょうか。 データベース名はshop、テーブル名はitemです。 SQLite:バージョン 2.8.17 PHP:バージョン 5.1.6 WindowsXPのプロフェッショナル、eclipse3.2、参考にした本は『eclipseではじめるPHP(http://item.rakuten.co.jp/book/4296315/)』と『基礎PHP(http://item.rakuten.co.jp/book/1711777/)』です。 エラーが出る行 if(!$db = sqlite_open('/../SQLiteManager/shop')){ die("データベース接続エラー.<br/>"); } エラー文 Warning: sqlite_open() [function.sqlite-open]: unable to open database: C:\SQLiteManager\shop in C:\Eclipse\workspace\shop\touroku.php on line 23 データベース接続エラー. PHPのフォルダ内にある 『PHP.iniextension=php_pdo_sqlite.dll』 『extension=php_sqlite.dll』 のコロンは外しました。 SQLiteManagerはworkspaceの中です。 設定が悪いのかファイルを置く場所が悪いのか、それともプログラムが悪いのかもわかりません。 宜しくお願いいたします。

    • 締切済み
    • PHP
  • sqliteでのデータベースのlocalhostとサーバーアップ時について

    xamppとPHP5をWindowsXP環境で使っています。 現在sqliteでデータベースを作成するプログラムを作り終えたのですが、 localhostで作成したデータベースをそのままサーバーにアップすると localhostと同じプログラムなのに読み込んでくれないのです。 で、サーバーでデータベースを作り直すと今度は読み込んでくれます。 もしかしてlocalhostで作成したデータベースはそのままサーバーに アップロードしてもダメなのでしょうか? ちなみにそのままアップするとデータベースを読み込んで表示する プログラムを動かすと下記の類の警告が出てデータベース関数も失敗しているようです。 Warning: sqlite_query() [function.sqlite-query]: database disk image is malformed in /home/ドメイン名/www/index.php on line 50 Warning: sqlite_fetch_array() expects parameter 1 to be resource, boolean given in /home/ドメイン名/www/index.php on line 54 現在さくらのレンタルサーバーですが、もしかしたらそれも影響している のかもしれません、、

    • ベストアンサー
    • PHP
  • SQLiteのデータベースについて

    PHP初心者です。以下のSQLiteより作成するデータベースについて教えてください。 $DB = sqlite_open('db1.db'); $sql="create table tables(id integer ,name,texts)"; $result=sqlite_query($db,$SQL); 上記、プログラムにより、同ディレクトリに、db1.dbが作成されますが、このデータベース情報はどのようにして、閲覧するのでしょうか(MS-ACCESS、SQLのように簡単に閲覧できないのか)。主キーやテーブルの名前またはフィールドの名前の変更、データ一覧閲覧などどのようにするのでしょうか。 環境は、Windows環境で、PHP4を使用しております。 よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • SQLite 3 が正常に動作しなくなりました。

    という表示への対応について教えていただけますでしょうか? XP Pro版 SP3 を使っております。 グーグルアドワーズエディターを開くと、 ソフトは開くのですが、グーグルサイトから データをダウンロードしようとすると、 正常に動作しない、ということで、 XPが上記の不具合を表示します。 対処方法としては、下記のとおり、SQLite 3 の 最新版をダウンロードしろと言うことなのですが、 そのサイトを見ると、いくつか候補があって、 どれをダウンロードすればいいのかわかりません。 http://www.sqlite.org/download.html このダウンロードページの一番上の、 sqlite-amalgamation-3_7_3.zip (1.16 MiB) をダウンロードして解凍、インストールすれば いいのでしょうか? ==下記はXPが表示した不具合の情報=== 技術情報 SQLite のサポート技術情報 SQLite 3 の問題を解決する SQLite 3 が正常に動作しなくなりました。 この問題を解決する SQLite 3 の新しいバージョンをダウンロードできます。SQLite では、セキュリティと安定性の向上のために、SQLite 3 の最新バージョンに更新することを推奨しています。 =========== お手数ですが、何卒よろしくお願いします。 このグーグルアドワーズエディター以外に 問題はないのですが。。。 (別のPC(WIN7)でも、試しましたが、 同じ問題が起こりました。) (ちなみに、私はプログラマーではないので、 難しい用語は理解できません。すみません・・・) どうぞよろしくお願いいたします。

  • MySQLやSQliteの中のデータ検索速度について

    ざっくりとした回答で結構ですので、データベース言語のバージョンについては、あえて記載を省きます。 環境:Apatch、Linux、PHP4、SQlite2 バージョンによって動作が異なるのであれば、その場合には適宜補足します。 なお、私はデータベース言語の知識をそれほど持っていませんので、分かりやすく記述して頂けると大変助かります。 --------------------------- では、本題に移らせて頂きます。 現在、PHP4とSQlite2の組み合わせでスクリプトを制作中なのですが、 その際に、データベース(以下、DB)の中のデータを検索・抽出することがあります。 SQliteのコマンドでは、SELECT文を使った記述になります。 (恐らく、MySQLなどでも同様だと思います。) で、知りたいことは、 DBをどう構築したら、「検索・抽出」速度が遅くなりにくいか(高速になりやすいか)。 これが知りたいわけです。 私が考えている方法は、いくつかあって、それらについて、 速い遅いの意見を覗いたいと思います。 また、もっと良い方法がありましたら、そちらも教えて下さい。 想定しているDBは、例として、簡単に以下のものとします。 例:学年の生徒DB クラスがA組~E組まで5クラスあります。 生徒の、 氏名、性別、クラス、出席番号、生年月日、所属している部活名、担当委員、欠席数 のようなものを記録するDBだと思って下さい。 さて、この例において、以下のどの形式が良さそうでしょうか。 方法1: (DBファイルを1つ用意) DBをCREATEするときに、TABLE名を tbl_all という風に1学年全体で記録するような形式。 方法2: (DBファイルを1つ用意) DBをCREATEするときに、TABLE名を tbl_a ~ tbl_e という風に分け、それぞれのテーブルに各クラスの生徒データを記録するような形式。 方法3: (DBファイルを複数用意) DBをCREATEするときに、クラスごとに、DBファイルを「db_a.sqlite2」~「db_e.sqlite2」のように作成し、それぞれにおいて、TABLEを1つ作り、そこにクラス内の生徒のデータを記録する形式。 どの形式のDBが、速く(もちろん正確に)検索・抽出(SELECT)できるでしょうか。 一般論でも結構です。 また、データ数が多くなるにつれ、速度が逆転するというような場合には、そちらも教えて下さい。 この例では、クラス数が5なので、比較的データは少ないですが、 私が構築しようとしているDBでは、データを1万件以上扱う可能性が高いので、その点も考慮して、アドバイスして頂けると嬉しいです。 以上、よろしくお願い致します。

    • ベストアンサー
    • MySQL
  • SQLiteでDBに書き込みできません

    PHPを勉強中で、データベースへの記録、表示で困っています。 書籍のサンプルでスケジュール記録なのですが、サンプルのままの項目数(日付、時刻、予定名、備考)でUPすると巧く行きますが、項目数を増やすとDBには記録されないで、表示もされません。 プログラム知識も乏しく、どこが悪いのか検討もつかなく困っています。 流れは、入力(schedule_record.php)→記録(schedule_record2.php)→表示(schedule_read.php)です。 ソースは http://www.tokyoflower.co.jp/php/schedule_record.php です。こちらに書ききれないので一時的にUPしています。HTML内にソースも書きましたので、お解かりになる方、ご教授頂けますと助かります。

    • ベストアンサー
    • PHP
  • PHPとSQLiteのアップロードについて

    お世話になります。 PHPを一生懸命勉強して、何冊も本を買いながら最近ようやくサンプルから抜け出して自分で少しプログラムらしきものができるようになったばかりのものです。ずっと自分のパソコン(ローカルホスト)のみで、色々やってきて、いざ、PHPの使える無料レンタルサーバーにアップロードと思って試してみたのですが、上手く行きませんでした。知識が不十分なままアップロードして、サーバー管理者の方に迷惑をかけるのも怖くて、なかなか自分のローカルホストで行っているように、何でもかんでも試すわけには行かないので、どなたか詳しい方に教えていただきたくて投稿いたしました。 自分のパソコン上ではアパッチとPHP5で行っております。 そして、SQLiteの中には、仮の会員のデータベースを作成しています。kaiin.phpというファイルをレンタルサーバーにUPロードすると正常に画面に表示されます。あとは、レンタルサーバーにSQLiteManagerというフォルダをアップロードすればよいだけなのかなと思い、アパッチの中にあるSQLiteManagerというフォルダをアップロードしました。そして、 kaiin.php画面にある入力フォームにデータベースに登録してある名前を入力してボタンをクリックしても、何も動作しませんでした。自分のパソコンでは、同じようにするとデータベースからその入力した名前を検索して、名前が存在している場合は、ログイン状態になり会員用の画面が表示されるのですが・・・。レンタルサーバーにPHPとSQLiteをアップロードするときには、どのようにすればよいのでしょうか。 どなたか詳しい方、ご指導宜しくお願いいたします。

    • ベストアンサー
    • PHP