1read 100read
2013年06月データベース11: SQLite Part.10 (199) TOP カテ一覧 スレ一覧 2ch元 削除依頼
データベースを略してデーベーと呼ぶスレ (101)
(^^)BTRIEVE(^^) (114)
【SQL Server】 を SQL と略している奴 (100)
ストアドよりインデックスのほうが速いよ (181)
【KVS】 Key-Value Storeを勉強するスレ (137)
【Oracle】DB天下一武道会【MS-SQL】 (102)

SQLite Part.10


1 :2012/08/16 〜 最終レス :2013/06/19
組み込み型データベース SQLite について語るスレッドです。
SQLite
http://www.sqlite.org/
・C/C++ API
 http://www.sqlite.org/c3ref/intro.html
・Syntax
 http://www.sqlite.org/lang.html
・Limits
 http://www.sqlite.org/limits.html
・Support
 http://www.sqlite.org/support.html

2 :
【過去スレッド】
・sqliteを語るスレ
 http://pc8.2ch.net/test/read.cgi/db/1056956494/
・SQLite 2
 http://pc8.2ch.net/test/read.cgi/db/1140827718/
・SQLite 3
 http://pc8.2ch.net/test/read.cgi/db/1152367932/
・SQLite 4
 http://pc11.2ch.net/test/read.cgi/db/1162621344/
・SQLite 5
 http://pc11.2ch.net/test/read.cgi/db/1176223619/
・SQLite 6
 http://pc11.2ch.net/test/read.cgi/db/1193118037/
・SQLite 7
 http://pc11.2ch.net/test/read.cgi/db/1220581676/
・SQLite 8
 http://hibari.2ch.net/test/read.cgi/db/1250225486/
・SQLite 9
 http://toro.2ch.net/test/read.cgi/db/1298737360/

3 :
【ツール】
 http://www.sqlite.org/cvstrac/wiki?p=ManagementTools
・TkSQLite
 http://reddog.s35.xrea.com/wiki/TkSQLite.html
・PupSQLite
 http://www.eonet.ne.jp/~pup/software.html
・SQLite Manager (Firefox add-on)
 http://code.google.com/p/sqlite-manager/
 https://addons.mozilla.org/ja/firefox/addon/5817
【ラッパ】
 http://www.sqlite.org/cvstrac/wiki?p=SqliteWrappers
・System.Data.SQLite (ADO.NET 2.0 Provider)
 http://sqlite.phxsoftware.com/
・SQLite ODBC Driver (ODBC)
 http://www.ch-werner.de/sqliteodbc/
・SQLite JDBC driver (JDBC)
 http://www.xerial.org/trac/Xerial/wiki/SQLiteJDBC
・SQLite Java Wrapper/JDBC Driver (JDBC、Java)
 http://www.ch-werner.de/javasqlite/
・SQLiteJDBC (JDBC)
 http://www.zentus.com/sqlitejdbc/ ※ページ行方不明

4 :
【ネタ】
・OS X ハッキング! SQLiteが広げるこれからのアプリケーション
 http://journal.mycom.co.jp/column/osx/236/
・SQLite Java Wrapperのコンパイル
 http://syo.cocolog-nifty.com/freely/2007/10/sqlite_java_wra_f79c.html
・生まれ変わるPHP - Zend Engine 2、SQLiteの実力は?
 http://news.mynavi.jp/special/2004/php5/007.html
・SQLite性能評価その1
 http://www.sutosoft.com/room/archives/000450.html
・Fulltext index on SQLite
 http://www.dodgson.org/omo/t/?date=20061001
・SQLite の全文検索を Python から使ってみる (1)
 http://plaza.rakuten.co.jp/kugutsushi/diary/200707270001/
・SQLite Full Text Search with MeCab
 http://reddog.s35.xrea.com/wiki/SQLite%20Full%20Text%20Search%20with%20MeCab.html
・MSDN Magazine: 働くプログラマ - SQLite の内部
 http://msdn.microsoft.com/ja-jp/magazine/ff898405.aspx
・アドビ、SQLite Consortiumに参加で開発を支援
 http://builder.japan.zdnet.com/db-sql/20368174/
・SQLiteに参加、Berkeley DBの置き換え狙うOracle
 http://news.mynavi.jp/news/2010/07/06/032/index.html
・How SQLite Is Tested
 http://www.sqlite.org/testing.html

5 :
【書籍】
・SQLite入門 第2版 (西沢直木 著)
 http://www.amazon.co.jp/dp/479811944X
 入門用にはとりあえずこの一冊?
・新標準SQLite
 http://www.amazon.co.jp/dp/4797354739
・SQLite ポケットリファレンス
 http://www.amazon.co.jp/dp/4774143944
・Pocket詳解 SQL辞典 (堀江美彦 著)
 http://www.amazon.co.jp/dp/4798018619
 各種 RDBMS 対応の SQL のリファレンス本で、SQLite にも対応。
 が、ざっと見たところ SQLite に関してはあまり緻密に調べられておらず
 不正確なところもあるように見受けられる。
・基礎から学ぶWebデータベースプログラミング (堀川久 著)
 http://www.amazon.co.jp/dp/4274065294
 前半は SQL の基礎について、後半は Ruby で Web アプリの作成についての説明。
 PostgreSQL, MySQL, SQLite の仕様の違いにも触れられている。
 が、 SQLite は SQLite2 ベースなので情報が古いかも。
・PHP+SQLite実践サンプルブック (豊崎直也 著)
 http://www.amazon.co.jp/dp/4883374297
 内容不明。7年前の本。
・The Definitive Guide to Sqlite (Mike Owens 著)
 http://www.amazon.co.jp/dp/1590596730
・SQLite (Developer's Library) (Chris Newman 著)
 http://www.amazon.co.jp/dp/067232685X
・Using SQLite (Jay A. Kreibich 著)
 http://www.amazon.co.jp/dp/0596521189

6 :
テンプレここまで。
SQLiteスレもついにスレ番2桁目に突入です。

7 :
SQLiteでの同時処理について質問です。
あるテーブルで値を+1する処理を行っています。
UPDATE sample_table SET count=count+1 WHERE num = $num
処理が呼ばれるとsample_tableのcountが1増えます。
ですがこが同時に100回行っても100増えません。
ゆっくりと100回行うと100増えます。
おそらく前の処理をしている最終に読み取った値に+1をしているのでうまく増えていないということだと思うんですがどのようにすれば行った回数分countを増やせるでしょうか。

8 :
>>7
前の処理のロック区間中にUPDATEしようとしてエラーになった分が更新されていない、とか
更新される前のcountの値を読み込んでインクリメントしたので前と同じ値を上書きしてしまっている、とか
いくつか原因は考えられるけど、情報が足りないので答えられないです。
・そもそも「同時処理」とは何を想定している?
・「同時に100回行う」ための手段(orコード)は?(SQL文だけ貼られても何がしたいのか分からない)
・「ゆっくり」とは何をどうしたの?

9 :
>>8
回答ありがとうございます。
こちらのcount+1を行うものはWEBサイトにおいておりまして、特定のアクセスが行われると+1されるというものになります。
そのため不特定多数の場所からアクセスがある状況です。
アクセスカウンターのようなものをSQLite3で行っておりアクセス毎に+1されます。
同時処理についてですが、こちらはWEB上から処理を行うようになっております。
そのため複数の箇所から同時に多数の要求があった場合に処理が複数走ることを指します。
100回行うコードというのはありません。
テストのためにApacheのabというツールで10アクセス10スレッドで100のアクセスを行いました。
その際に+100ほど数値が増えないといけないのですが、実際には30程度しか増えておりませんでした。
ゆっくりというのは手動でアクセスを100回した場合のことを指しております。
F5でリロードを100回するのに近いと思います。
そのためゆっくりアクセスを行うというニュアンスで使用いたしました。
質問内容に不備があり申し訳ありませんでした。
対策が思いつかないのでアドバイスなどいただけると助かります。

10 :
ただの排他漏れだろ
アクセスカウンタ作ったことないの?

11 :
>>9
質問する時はコードも貼ること。
もちろん、100回のクエリが全部成功してるかどうかは確認したんだよね?

12 :
>>9
アクセスカウンタは作ったことあります
排他制御も知ってはおりますが、SQLiteではどのように排他制御を行うのでしょうか?
>>10
100回のアクセスが成功していることは確認しています。
アクセスのテストについては申し訳ないですがツールを使用しているためコードがありません。
カウントの部分については
$connect = count_db();
$countup = $connect ->prepare("UPDATE sample_table SET count=count+1 WHERE num = $num");
$countup ->execute();
となります。

13 :
>>12
SQLiteはそこら辺のDBMSと同じで別に何もしなくても「排他制御」はされるよ。
「100回のアクセス」とやらが成功しているのをどうやって確認したのか知らないけど、どう考えてもSQLクエリの実行が失敗してる。
見たところPHP+PDOって感じだけど(質問する時は言語名くらい書くこと)、count_db()が何だか分からないし、
prepareなのにプレースホルダ使ってないし、クエリの実行結果が成功かどうか確認しているようにも見えないし、
とりあえずPHPとPDOとデータベースを先に勉強した方が良いと思うよ。
あと、テーブル構造とか変数が何だか分からないから、クエリ自体があってるのかすら確認できないけど、まあそれはいいや。

14 :
>>13
アクセスの成功に関しては負荷ツール側で全てのリクエストがHTTPステータス200で終了していることで確認しました。
ですのでSQLクエリの実行が失敗していると見てよいのかの判断がついておりませんでした。
排他制御は行われているとの事なのでカウントがプラスされていない時点でクエリが正常に実行されていないと見るべきでした。
申し訳ありません。
count_db()については
function count_db()
{
$connect = new PDO("sqlite:./sample_table.sql3");
return $connect ;
}
となります。
テーブル構造は
sample_table
------------------
|num | count |
------------------
|index | 1 |
|contact | 30 |
------------------
このようになってます。
num側にページアドレス・count側にアクセス数が入っています。
PDOとデータベースの勉強のためにまずは簡単なアクセスカウンターを作ってみようかと思って作成いたしました。

15 :
>>14
ページアドレスがnum…。まあいいけど。
データベースにしてもPDO(と言うかPHP)にしても入門書は腐るほど出版されてるから、
とりあえず適当なのを買ってきて読めば一通りのことは出来るようになると思う。
あと、HTTPの仕組みとかも勉強した方がいいかもね。
SQLクエリの実行結果は [DBMS] → [PHP]
HTTPステータスは [PHP(と言うかWEBサーバ)]→[WEBブラウザ]
ちなみに、今回のは排他制御がかかってる時に同時にUPDATEしようとしてエラーになったらどうするか、の考慮が漏れてるのが問題。
おそらくロック待ちのタイムアウト値が設定されていないので、100回のうちエラーになった分はスルーされてる。
これだけレスしておいてあれだけど、微妙にスレ違い(今のところあんまりSQLite関係ない)だし、ヒントも書いたので、
あとはWEBプログラミング板の適当なスレに移動した方が幸せになれるかもしれない。勉強頑張れ。

16 :
>>15
ありがとうございます。
排他中の制御に関してはまったく考慮しておりませんでした。
前の処理が終わるまで順番に待っているだろう
くらいの認識でした。
amazonあたりで評価の高そうな本をいくつか見てみたいと思います。
ありがとうございました。

17 :
外部結合しているテーブルの行をを一度に消す方法はないのでしょうか?
delete TBL_A from TBL_A left join TBL_B on TBL_A.keyid = TBL_B.id where TBL_B.keyid = 4;

delete from TBL_A from TBL_A left join TBL_B on TBL_A.keyid = TBL_B.id where TBL_B.keyid = 4;
など紹介されているものを色々試してみたのですが、どうしてもsyntaxerrorがdelete直後の単語ででてしまいます。
テーブルごとに削除するしかないのでしょうか…?

18 :
DELETEはFROM一つしか書けないよ。JOINも当然書けない。
メインのテーブルのレコードを削除したとき必ず従属テーブルのレコードを削除するならトリガーに書きなよ。

19 :
>>18
回答ありがとうございました。
トリガー使ったことないのですが、挑戦してみます。

20 :
ばか

21 :
そんな事言うんじゃないよ

22 :
sqliteのファイルを読み込む際に、そのファイルがsqliteのファイルであるかどうかを確認することはできますか?
sqlite以外のファイルを読み込んだ際に当たり前ですがエラーが出るのでそれに対処したいと思っています。
読み込むsqliteのファイル名に規則性がないので振り分けができないので、ファイルがsqliteファイルであるかどうか確認する方法があれば教えてもらえると助かります。

23 :
3.7.14

24 :
>>22
自分で結論にたどり着いてるみたいだけど…。
>sqliteファイルであるかどうか確認する方法
>sqlite以外のファイルを読み込んだ際に当たり前ですがエラーが出る

25 :
>>24
ワロタ
確かに、エラーが出てるとわかってるならそれでいいじゃんとなるけどねw
事前に判断することができるか?という希望に答えるとすると、
C言語的にはファイルを開いて先頭16バイトバイナリ読込して、
"SQLite format 3\x00"とmemcmpして見れば一応わかる。
ただし、こんなものは偽装はできるし、このヘッダ部は正常でも、sqlite的に演算したら
ファイルが破損していた場合は結局エラーになるので価値は・・・疑問かな。
sqlite3_openv2がエラーを返すならそれで判断するのが良いよ。


26 :
http://www.sqlite.org/fileformat2.html

27 :
SQLite3使ってますがカラムの追加は最後尾にしか出来ないでしょうか?
| 1 | 2 | 3 | 4 |
とあった場合
| 1 | 2 | 3 | 3.5 | 4 |
としたいと思ってます。

28 :
>>27
http://www.sqlite.org/lang.html
http://www.sqlite.org/lang_altertable.html
http://www.sqlite.org/lang_select.html
質問する時は、何をするために、どういうSQL文を使って、結果がどうなって、それが目的とどう違ったか、くらいは書くこと。
じゃないと ドキュメント読んで下さい くらいしか答えられない。

29 :
>>27
ALTERならどのDBMSでもそうじゃないの?
テーブルを作り直してINSERTすればいいじゃん。

30 :
そういう話なら、alter table文の最後に"before カラム名"とか"after カラム名"をつけると、テーブルをselect *で見た時に、
意図した場所に入ったように見せる(物理ディスク上はどうせ最後に追加される)ことができるRDBMSは結構あると思う。
けど、もしかしたらSQL標準には無かったかもしれない。
と言うか>>27の目的はselect文で順番を変えるだけで済むような。

31 :
select *しか知らいないと予想してみる

32 :
SQLite3はMySQLみたいに任意の場所に追加は出来なかったと思う
どうしても順序通りに作りたいなら
テーブル作り直して、Insertしかないと思う。
SQLite3で before カラム名 が出来るかどうかは試したこと無い。

33 :
SQLiteってあんまし触ったこと無かったけど
insert into test('test','test2') values ('1','2'),('3','4');
って出来ないの?
insert into test('test','test2') values ('1','2');
なら出来るんだけど、複数insertするとときの作法がよくわからない。

34 :
>>28にもあるようにドキュメント読めばすぐに解決できるだろうが
http://www.sqlite.org/lang.html

35 :
なるほどね
さすがにLiteっていうだけあって色々制限あるね
というかこれからの質問は
ドキュメント読めばすぐに解決できるだろうが
http://www.sqlite.org/lang.html
のテンプレ張れば解決だな

36 :
と言うか最初からテンプレにある。>>1にアンカ張れば解決。

37 :
sqlite> .version
SQLite 3.7.14 2012-06-30 ********
sqlite> CREATE TABLE jedict (jword TEXT, eword TEXT);
sqlite> INSERT INTO jedict ('hon', 'book') , ('kon', 'navy'), ('mon', 'gate');
sqlite> select group_concat(jword, '_') from jedict;
hon_kon_mon

38 :
>>37
これで挿入は出来るんだけどカラム増やすためにDB作り直したときにいっつもこまってるんだよね
sqlite> CREATE TABLE jedict (jword TEXT, eword TEXT)

sqlite> CREATE TABLE jedict (jword TEXT, eword TEXT, hword TEXT);
にしたとき
INSERT INTO jedict ('hon', 'book') , ('kon', 'navy'), ('mon', 'gate');
だと困るからいっつも
INSERT INTO jedict ('hon', 'book', '') , ('kon', 'navy', ''), ('mon', 'gate', '');
こんな感じに書き直してから挿入するので手間がかかってしょうがない


39 :
hword カラムを not null default '' にして追加したあと
INSERT INTO jedict (jword, eword) values ('hon', 'book') , ('kon', 'navy'), ('mon', 'gate');
じゃダメ?

40 :
そういう手もあるか
そもそもSQLiteで移植ってみんなどうやってんの?
MySQLとかならphpyAdminとか使ってラクラク出来るけどSQLiteでそういうのあるの?

41 :
ごめん、移植ってのがよく分からない。
流れ的に>>38みたいにDB作り直して中のデータの一部or丸ごとをコピーすること?
それとも他のRDBMSにデータを持って行ったり、持って来たりすること?

42 :
>>41
DB作り直して中のデータを丸ごとコピーしたりすること
言葉足りずで申し訳ない

43 :
そもそも、中身を丸ごとコピーしないといけないような重要なDBを、
構造を変えて作り直す状況があんまり無いんじゃ…。

44 :
>>42
sqlで出来るならそれで。
できないならぶっちゃげぱっとスクリプト書いちゃうな。

45 :
年中作り直すのは設計に問題がある。
カラムの追加ぐらいでいちいち作り直さない。

46 :
さすがにカラム追加するだけで作り直しとかはないけど
拡張して追加よりは作り直したほうがいい場合が年に1回くらいあったりしてたんで
みんなどうやってんのかと思って。

47 :
年中作りなおすなんて書いてないだろ。
質問者は、作りなおすハメになったのが設計の甘さかどうかなどは問わず、
「みんな、どうするのかな?」って軽いつもりで聞いてるんだろ。
エラソーに設計に問題がーとか言ってるのは意図を汲めない馬鹿丸出しの発言だろ。
SE/PGだけが業務でコンピュータを使いう時代じゃないんだ。
少しは考えろよ。

48 :
>>47
訂正、業務かどうかも前提とすべきではなかったな。

49 :
「作り直す時のテクニックをみんなで考えよう」じゃなくて「みんなどうやってんの?」だからなー。
業務だったらそんなマズい設計にはならないし、趣味だったら入れなおすほどのデータなんて扱わない人が大半だろうから、
質問者へのレスとしては間違ってないと思うぞ。年中云々は知らんけど。
仮に前者を問いかけたつもりなんだとしたら聞き方を間違えてる。

50 :
phpMyadminみたいにWEB上でお手軽に出来るのがあればいちいちスクリプト組んだりコマンド流したりやんなくていいんだろうけどね
俺はデータをどっかに持ってく場合は
各値を'で囲んで取り出して1レコードを()でくくる感じで吸い出す
('a', 'b', 'c')
こんな感じ。
あとは引越し先にinsertで突っ込む。
1回だけ構造が違うところに突っ込むことがあったけど、そんときは
('a', 'b', '', 'c')
って感じにして対応した。
そんときは80万レコードあったので2個目の,のあとに'', を追加するスクリプト組んで書き換えた。
このやり方がスマートかどうかはわかんないけど、おれは引越しするときはいつもこんな感じでしてる。

51 :
>>47
いったい誰と戦っているんだよ?空気脳さん.

52 :
3.7.14.1

53 :
PHP上からSQLiteファイル内のデータを全部引っこ抜くようなのって無いんだっけ?
全レコードを>>50みたいな感じでおいらも引っこ抜いてるんだけど。

54 :
keyとvalueしかない構造だから悩まない

55 :
突然どうした?

56 :
追加とか変更とかは適当にコマンド流すけど
何か変更することあればFirefoxのSQLiteManagerってやつでいじってる
それ以上のことやろうと思うならそもそもSQLiteとか使わずMySQLとか使ってるしな

57 :
だからどうした?

58 :
以下の様なデータが格納されているデータベースで
1
1
1
2
2
3
3
3
4
とあるデータで各値が何回出てくるかカウントするってことは出来ますか?
1=3回
2=2回
3=3回
4=1回
みたいな検索結果を得たいと思ってます。

59 :
table名 theTable
カラム名 a int
a
--
1
1
1
2
2
3
3
3
4
--
select a, count(*) as cnt from theTable group by a order by a

60 :
>>59
解凍ありがとうございます。
こういう組み合わせ知らなかったので凄い勉強になりました。

61 :
まさかこんなレベルでプログラマじゃないよなw

62 :
>>58-61
スレ違い。
SQL質疑応答スレ 13問目
http://toro.2ch.net/test/read.cgi/db/1343899481/

63 :
SQL知らなくても凄腕のプログラマもいるし

64 :
SQLiteって別ドメインであってもファイルにアクセスさえ出来れば、どこに置いてても操作できる?

65 :
http://www.sqlite.org/faq.html#q5
5) Can multiple applications or multiple instances of the same application access a single database file at the same time?
抜粋意訳
NFSでマウントすればリモートアクセス出来るが、NFSのファイルロックは信頼性か低いものもありオススメしない

66 :
SQLiteってクロスドメインとかいけるんだっけ

67 :
ファイルって複数のテーブル突っ込んでサイズデカくなっても
ひとつのテーブルへの速度に影響ないレベル?

68 :
検索はそんなにかわんない
でもinsertとかupdateとかとかになると件数が10万件とかあると多少違ってくる

69 :
>>68
ありがと! 検索メインなのでまとめてみます!

70 :
SQLiteってDB自体を暗号化って出来る?

71 :
SQLCipherってので暗号化できるみたいだけど半有料

72 :
書き出しと読み出しの部分のソスを書き換えて...
なんてのは出来そう?

73 :
>>70
>>1のSupportを参照。有料で別ライセンス(パブリックドメインではない)だけど本家が出してる。

74 :
暗号化してインサートすればいいんじゃね?

75 :
>>72 する手間かけるくらいなら >>74 の方が良いね

76 :
そか IO部分はそのままという事ね。
すぐ 出来そうな感じはする。
出来ないけどorz

77 :
>>74-75
暗号化してinsertしちゃったら
検索出来なくなるじゃん

78 :
I/Oはそのままってだけですよ。

79 :
>>77
検索キーも暗号化して検索すればいいんじゃね?

80 :
部分文字列の比較とか難しくないか?
SUBSTRINGを使った場合位置が保証されるかとか。

81 :
そりゃrotみたいな単純なもんならいいけど、暗号化とは言えないし、そもそもそれだと部分一致とかマルチバイトとか面倒だろ

82 :
>>79
キーだけ暗号化した暗号文と
キーを含む文字列を暗号化した暗号文が
部分一致することは普通はあってはならない

83 :
というか、一般にそれを暗号化とは言わない。
スレ違いなのでプログラム技術板あたりへどうぞ。

84 :
出来ないなら普通に出来ないって言えばいいのに

85 :
暗号化した文字の比較とかの話だからスレ違いってことでしょ
暗号化が出来る/出来ないの話なら>>73で出来るって結論が出てる

86 :
馬鹿には無理

87 :
sqliteってファイルベースのデータベースじゃん
その作成されるデータファイルのパーミッションやユーザ権限ってどうなってんの?
ユーザ毎に保存してくれる?

88 :
最後の一行がよく分からないけど、実行したユーザの権限で作成されるよ。

89 :
ありがとー

90 :
sqlite3_close_v2 よいよね

91 :
3.7.15

92 :
SQLite3の1つのDBの中に、最大でいくつまでテーブルが作成できるのでしょうか?

93 :
>>92
>>1
答えはないけどヒントは書いてある。

94 :
3.7.15.1

95 :
.netなんですけど1つ目のテーブル読みながら2つめにコピーしようと
してるんですがdatabase file is lockedになります
mdbでやってた時は動いててそれをsqliteに置き換えただけなのですが
原因わかりますでしょうか

96 :
エスパーじゃないので分かりません
コードとかSQL文を貼ってみてはいかがでしょうか

97 :
>>93
すみません
いろいろと調べているのですが見つかりません。
レコード数やフィールド数はビルドオプションで設定ができるのですが、テーブル数の設定は見つけることもできません。
定数ではなく、環境依存の値になってしまうのでしょうか?

98 :
テーブル数の上限はたぶん未定義で環境(ディスク残量など)に依存。
ソースを見ても SQLITE_MAX_TABLES みたいなそれらしき記号定数なし。
ためしに機械的な名前(T_0, T_1, .. T_99999)でテーブルを10万個作成してみたが作れた。

99 :
予想だけど…。
SQLiteは作ったテーブルやインデックス、ビュー、トリガーとかのスキーマ情報を、
同じファイル内の特殊な予約テーブル"sqlite_master"に格納してる。
で、レコード数の上限は2の64乗=18446744073709551616と書いてある。
これをテーブル情報だけで全部使い切るには1800京個くらいのテーブルを作る必要があるけど、
仮に1レコード1バイトしか使わなかったとしても全部使えばsqlite_masterテーブルだけで170億GBくらい必要。
実際にはテーブル情報以外にも格納するから、もう少し減るとは思うけど、事実上無制限。
と、ここまで書いて気がついたけどsqlite_masterが埋まる前にページ数の上限の方が先に来るのかな?
アーキテクチャをちゃんと読まないで適当に書いてるけど、sqlite_masterの各行に、それぞれのデータが
格納されているページ番号(の先頭)を指定してた気がするから、ページ番号とB-Treeの先頭の対応が1:1で、
それぞれのテーブルが全部1ページ内に収まってるとすれば、ページ数の上限は2の31乗-2=2147483646だと
書いてあるから、そっちの上限に先に到達するのかもしれない。

どっちにしても通常運用で支障が出ることはないくらい沢山作れそうだけど、
嘘をいっぱい書いてるかもしれないので詳しい人いたら解説お願いします。
100read 1read
1read 100read
TOP カテ一覧 スレ一覧 2ch元 削除依頼
【10g】オラクルマスター Silver Part3【11g】 (137)
SQLについて語るスレ (142)
【】 MySQLを買収したSunを買収したOracleを 【】 (102)
さて、この板の看板だが (143)
【レア技術者】 ORACLE DEVELOPER R6i 【狂え!】 (106)
SELECT * に続けて何か書け! (166)
--log9.info------------------
合衆国国防総省が全職員の75%にWindows 8(+Office, SharePoint)を導入 (182)
Microsoftが得るAndroidのライセンス料は4億4400万ドル――Goldman Sachs予測 (112)
■MS「Windows8の伸び悩みはタッチパネルの供給不足のせい」と責任転嫁 (199)
【ブラウザ】IE使ってる奴はアホ (165)
【恥】Microsoft、『Office XP』のバグを「訂正不可能」として修正せず【無責任】 (110)
Windows Phoneにセキュリティ問題、Microsoftが対応表明 (105)
ソニーが“大リストラ”宣言 (115)
【メシウマ】Google、Windows 8およびWindows Phone向けのアプリを作らない方針 (118)
もうダメだ】ソニー、年内に数千人規模を削減へ 事業再編分と合わせ1万人をリストラ【倒産 (116)
【失敗】ノキア、Windows Phoneを発売開始3カ月未満で半額に値下げ (106)
【独占禁止法】「Windows RTからIE以外を閉め出すのか」、MozillaがMicrosoftを批判 (142)
米グーグルがマイクロソフトなど批判、「アンドロイドを妨害」 (167)
Windowsのリモートデスクトップで使うポートへの攻撃が急増中、JPCERT/CCが注意喚起 (176)
【詐欺】Surface価格 当初199ドル → 499ドルから【嘘つき】 (171)
【パクリ】マイクロソフト、アップルの「iTunes Match」に似たサービスを開始か (108)
■C#のランキングは急降下。Objective-Cは人気言語アワードを受賞 (102)
--log55.com------------------
音大に行ってないけどピアノ講師になりたい
かながわ音楽コンクール
ピアノ弾きの好きな食べ物
この板は嘘で満ち溢れている
リチャード・クレイダーマン
ジャズ風ピアノを弾きたい人のためのスレ
【F・F・ショパン】のピアノ演奏専用スレ その1
ショパコン2