SQLite 9
レス数が950を超えています。1000を超えると書き込みができなくなります。
0001NAME IS NULL
2011/02/27(日) 01:22:40.55ID:???SQLite Home Page
http://www.sqlite.org/
0002NAME IS NULL
2011/02/27(日) 01:23:27.45ID:???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/
0003NAME IS NULL
2011/02/27(日) 01:23:37.18ID:???Management Tools
http://www.sqlite.org/cvstrac/wiki?p=ManagementTools
【GUIツール】 TkSQLite
http://reddog.s35.xrea.com/wiki/TkSQLite.html
【ADO.NET 2.0 Provider】 System.Data.SQLite
http://sqlite.phxsoftware.com/
【ODBC】 SQLite ODBC Driver
http://www.ch-werner.de/sqliteodbc/
【JDBC】 SQLiteJDBC
http://www.zentus.com/sqlitejdbc/
【ADO.NET provider】 System.Data.SQLite
http://sqlite.phxsoftware.com/
【GUI管理ソフト】 PupSQLite
http://www5.plala.or.jp/Pup/
【Firefox add-on】 SQLite Manager
http://code.google.com/p/sqlite-manager/
https://addons.mozilla.org/ja/firefox/addon/5817
0004NAME IS NULL
2011/02/27(日) 01:23:47.26ID:???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
SQLiteへの大量のINSERT処理が厳しい (CodeZine編集部ブログ):
http://codezine.jp/blog/2007/10/sqliteinsert.php
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
0005NAME IS NULL
2011/02/27(日) 01:23:55.79ID:???SQLite入門 第2版 (西沢直木 著)
http://www.amazon.co.jp/dp/479811944X
和書で SQLite のみにフォーカスした書籍はこれ一択か。
入門用にはとりあえずこの一冊。
PHP+SQLite実践サンプルブック (豊崎直也 著)
http://www.amazon.co.jp/dp/4883374297
(内容不明。補足よろ)
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 ベースなので情報が古いかも。
洋書
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
0006NAME IS NULL
2011/02/27(日) 03:08:39.69ID:???0007NAME IS NULL
2011/02/27(日) 09:31:24.35ID:???どんどん遊びましょう。
0008NAME IS NULL
2011/02/27(日) 10:18:12.54ID:???和書は少し増えてるからテンプレに追加したほうがいいかも。
新標準SQLite
http://www.amazon.co.jp/dp/4797354739/
SQLite ポケットリファレンス
http://www.amazon.co.jp/dp/4774143944/
「PHP+SQLite実践サンプルブック」は6年前の本だし抜いてもいい?
他にOreillyのSQLite本が早く翻訳されないかね。
http://www.amazon.co.jp/dp/0596521189/
0009NAME IS NULL
2011/02/27(日) 13:59:21.30ID:???こんなのあったのか。とりあえず買った。
技術書の英語なんて日本語と大差ないし。
0010NAME IS NULL
2011/02/27(日) 14:12:46.83ID:???0011NAME IS NULL
2011/02/27(日) 15:44:14.18ID:???0012NAME IS NULL
2011/02/27(日) 16:42:52.17ID:???出来るよ。改行を置換する関数を追加するといい。
http://www.sqlite.org/cintro.html
詳細はここを読んでね。
0013NAME IS NULL
2011/02/27(日) 21:02:00.19ID:???0014NAME IS NULL
2011/02/28(月) 13:43:30.75ID:3radngHB具体的に説明せよ
0015NAME IS NULL
2011/02/28(月) 15:38:14.66ID:???SQLiteなんかの解説書読んで何を学びたいの?
何か学べてるの?
0016NAME IS NULL
2011/02/28(月) 18:11:38.98ID:???0017NAME IS NULL
2011/03/01(火) 07:39:57.86ID:???0018NAME IS NULL
2011/03/01(火) 10:06:28.83ID:???0019NAME IS NULL
2011/03/01(火) 10:07:27.99ID:???0020NAME IS NULL
2011/03/02(水) 03:07:04.27ID:???自分では読む価値も無いって思ってる物を人に押し付けるなよw
0021NAME IS NULL
2011/03/02(水) 03:09:29.11ID:???0022NAME IS NULL
2011/03/02(水) 08:02:21.57ID:???0023NAME IS NULL
2011/03/02(水) 08:16:42.36ID:???0024NAME IS NULL
2011/03/02(水) 08:43:51.15ID:???0025NAME IS NULL
2011/03/02(水) 22:44:30.87ID:???0026NAME IS NULL
2011/03/04(金) 21:50:44.53ID:???んですが、もしかしてSQLiteに外部キー制約が実装されていない?
0027NAME IS NULL
2011/03/05(土) 07:10:09.46ID:???3.6.19以降なら
PRAGMA foreign_keys = ON;
で有効になる。
0028NAME IS NULL
2011/03/05(土) 15:16:41.78ID:???ありがとうハニー
0029NAME IS NULL
2011/03/09(水) 23:37:41.98ID:???って同僚から言われたんだがそうなの?
いくら軽量だからっていまどきのDBでそんな初歩的なことをしてないものはないと思うんだけど。
0030NAME IS NULL
2011/03/10(木) 00:01:49.31ID:???>SQLiteって同時にDBアクセスしたりした時の対応とかできないから昔のアクセスカウンターみたいに壊れることあるよ
>って同僚から言われたんだがそうなの?
んなわけない
003129
2011/03/10(木) 00:10:53.57ID:???MySQLみたいなのはいいけど、SQLiteは軽量化するために機能を削ってるから複数の人が同時に書き込んだりするとダメになるとあまりにも真剣に言うもんだからよ。
何かと勘違いしてるのか、それとも昔の古いバージョンはそうだったとかだろうか。
0032NAME IS NULL
2011/03/10(木) 03:13:02.45ID:???0033NAME IS NULL
2011/03/10(木) 05:24:45.87ID:???前スレにロック周りのことがガシガシ書かれているから、読んでみ。
0034NAME IS NULL
2011/03/10(木) 09:34:41.40ID:???今はないと思うけどカウンターの動きとして
1.ファイル開く
2.中の数字を拾う
3.数字に+1する
4.ファイルを綺麗にする
5.+1した数字を書き込む
って動作になるけど、ファイルのロックとかがない場合に「4」のときに他の人がファイルを開くと
何もないファイルを開いて、それに+1することになるわけ。
そうすっと0+1でアクセス数が1になってしまうってこと。
壊れるってのとはちょっと違うけどロックがないとタイミングによっては意図しないデータになってしまうというオチ。
0035NAME IS NULL
2011/03/10(木) 09:53:18.23ID:???読み取りタイミングでカウント漏れなら普通にあるけど
0036NAME IS NULL
2011/03/10(木) 10:21:41.99ID:???F5 attack とか?
0037NAME IS NULL
2011/03/10(木) 10:34:51.31ID:???昔のカウンターはflock使ってないのが結構あったんだよ、KENTのとかね。Windows 98でflockが使えなかったのが原因だと思うけど。
0038NAME IS NULL
2011/03/10(木) 17:27:45.38ID:???それは別の話じゃ?
0039NAME IS NULL
2011/03/11(金) 02:58:55.15ID:h7V2p/UXストアドっていうのは、まとまった処理をサーバー側で実行させるので
いちいちクライアントから実行するよりも高パフォーマンスって話なんだが。
DBエンジンが同一プロセスで動作するSQLiteにストアドなんていらんよ。
プリペアドステートメントを必要な数だけ用意しておいて、
まとめて実行すればいいだけ。
0040NAME IS NULL
2011/03/11(金) 03:03:37.32ID:???適当にBLOBか何かでDecimalの内部データを格納しておいて、
変換関数を定義すればいいだけの話だろ。
検索やインデックスに使いたければ、カスタムコレーションシーケンスを
定義すればいい。
0041NAME IS NULL
2011/03/11(金) 06:25:48.52ID:???>>40
たちこめる圧倒的馬鹿臭
0042NAME IS NULL
2011/03/11(金) 07:08:23.35ID:???馬鹿ではなく最近の若者は布教とかお布施とか大好きみたいだぞ
0043NAME IS NULL
2011/03/13(日) 16:43:06.58ID:???0044NAME IS NULL
2011/03/13(日) 20:08:41.34ID:???0045NAME IS NULL
2011/03/16(水) 14:10:43.75ID:???最近はかなりちゃんとしてる
0046NAME IS NULL
2011/03/21(月) 19:06:46.50ID:???0047NAME IS NULL
2011/03/21(月) 19:30:26.03ID:???検証していただくと
大変感謝されると思います。
0048NAME IS NULL
2011/03/21(月) 21:43:49.21ID:???頭の弱い>>46にそんな事期待するなよ
可哀想だろう
0049NAME IS NULL
2011/03/21(月) 23:50:34.54ID:???そうでしたか。
すみませんでした。
0050NAME IS NULL
2011/03/22(火) 13:33:42.31ID:???だけのプログラムを書いて、100万回起動してみた。
シングルスレッド、シングルプロセスなのに、確かに
database is locked が発生するね・・・
0051NAME IS NULL
2011/03/22(火) 14:52:50.34ID:???頭悪すぎw
0052NAME IS NULL
2011/03/24(木) 00:25:31.90ID:???0053NAME IS NULL
2011/03/24(木) 15:02:04.42ID:???0054NAME IS NULL
2011/03/25(金) 00:41:10.03ID:???0055NAME IS NULL
2011/03/25(金) 21:46:03.23ID:6VhxQ0vt0056NAME IS NULL
2011/03/25(金) 23:51:08.49ID:???0057NAME IS NULL
2011/03/26(土) 06:28:47.24ID:???「お手軽に扱える」といううたい文句に釣られたゴミクズの吹きだまりだから。
0058NAME IS NULL
2011/03/26(土) 10:03:44.26ID:???0059NAME IS NULL
2011/04/13(水) 09:08:48.85ID:???例えば想定ユーザーが1000を超える場合とか、アクセスが1000超える場合とかあれば教えてください。
0060NAME IS NULL
2011/04/13(水) 09:50:31.33ID:???基本的にすべてDBを使ってます。
0061NAME IS NULL
2011/04/13(水) 16:26:12.46ID:???検索をするかしないか、で判断します。
検索をしないならCSVファイルのままでいきます。
0062NAME IS NULL
2011/04/13(水) 16:45:12.78ID:???0063NAME IS NULL
2011/04/13(水) 17:38:56.62ID:???0064NAME IS NULL
2011/04/14(木) 00:22:44.98ID:???ってCSVのハンドルも結構ややこしいか。
でもライブラリ作ってるだろうし。
0065NAME IS NULL
2011/04/14(木) 06:52:49.01ID:???データ量にかかわらずSQLite使った方が工数的にもパフォーマンス的にも上だから、
何かしらの要件がない限りそもそもCSV(やTSV)を使おうとなど思わない。
アクセス数がどうとかユーザー数がどうとかじゃない。
何かしらの要件、言い換えればCSVのメリットとは、例えば
マスターデータをエンドユーザがメンテする際にTkSQLiteとかの使い方をレクチャーしたくないからExcelで編集させたい場合とか、
自分でもテキストエディタでいじれた方がメンテが楽な場合とか。
>>61
更新するかというのも大きな要素だと思うね。
管理者のみが更新するマスターデータを読み込むだけならCSVでも全然面倒じゃない(CSVとの工数差が僅かしかない)けど、
更新も伴うと排他処理考えなきゃいけなくなるからSQLite使った方が断然楽になる。
例えば2chの板一覧みたいなデータはCSVやTSVでもいいけど、スレの書き込みの内容を保存するDATみたいなデータをCSVにする気は起きない。
0066NAME IS NULL
2011/04/14(木) 07:15:18.03ID:???どの鯖でもSQLite使えるわけじゃないから。
ちょっと古い話だけどKENTのPerl CGIがレガシーなコードで非常に非効率なのにもかかわらず人気を得た理由の一つに、環境を選ばないということが挙げられるだろう。
「Perlが動く環境ならどこでも使える」シンプルさが受けたんだろう。あれがもしSQLiteを使ってたとしたらそこまでの人気は得られなかったはず。
tDiaryが非効率なテキストベースのデータストアを使い続けてる理由も「Rubyさえ動けば使えます」ということがウリの一つだからだろうね。
そういう意図のないスクラッチなアプリ書くならわざわざCSV選ぶ意味はない。
0067NAME IS NULL
2011/04/14(木) 11:42:18.17ID:???しかしSQLiteが組み込まれているのは2.5以降なのに、世の中は2.4以下のサーバが多かった
0068NAME IS NULL
2011/04/14(木) 11:54:49.66ID:???書き込みはいやだなぁ
0069NAME IS NULL
2011/04/15(金) 00:50:30.62ID:???0070NAME IS NULL
2011/04/15(金) 03:50:28.94ID:???0071NAME IS NULL
2011/04/15(金) 07:22:27.04ID:???0072NAME IS NULL
2011/04/15(金) 07:53:01.78ID:???エスケープ必須でちゃんとした仕様が必要ならばRFCのあるCSVのほうがいいかもしれない
0073NAME IS NULL
2011/04/16(土) 05:00:48.17ID:???CSVってRFCになってたのか。知らなかった。
0074NAME IS NULL
2011/04/17(日) 15:16:50.82ID:???そうでない人はCSVになるんだと思う。
0075NAME IS NULL
2011/04/17(日) 16:52:38.85ID:???0076NAME IS NULL
2011/04/17(日) 19:54:50.76ID:???0077NAME IS NULL
2011/04/17(日) 22:00:06.38ID:???SQLにこだわる理由は?
noSQLでいけるならそっちがいいし
ただのログならCSVでいいよね
0078NAME IS NULL
2011/04/17(日) 23:05:14.21ID:???TSVならわかるけどね。
TSVやSQLiteで簡単に済む問題をわざわざ複雑なCSVにしたがる奴ってただCSVしか知らないだけだろ。
0079NAME IS NULL
2011/04/17(日) 23:19:39.37ID:???0080NAME IS NULL
2011/04/18(月) 01:19:39.50ID:???>>59や>>77はそういう次元でものを語ってないから論外だよねっていう。
0081NAME IS NULL
2011/04/18(月) 03:52:44.85ID:???×CSVしか知らない
○CSVをろくに知らない
まともにCSVを扱おうとするとSQLより圧倒的にめんどくさく、最後に互換性問題でブチ切れる
0082NAME IS NULL
2011/04/18(月) 17:15:53.70ID:???0083NAME IS NULL
2011/04/19(火) 05:29:25.92ID:???0084NAME IS NULL
2011/04/19(火) 07:45:39.89ID:???しかしCSVはまずないな、CSVが適するシーンはかなりのレアケース
0085NAME IS NULL
2011/04/19(火) 22:40:08.64ID:???データん中にカンマあったらどうすんのとか。
0086NAME IS NULL
2011/04/20(水) 17:58:39.98ID:???あるけどな、エクセルしか使えないような人がcsv出力して持ってくるとか。
でもまあそれでもインポートまでだけどな。
0087NAME IS NULL
2011/04/20(水) 22:55:39.44ID:???0088NAME IS NULL
2011/04/21(木) 10:42:20.78ID:???0089NAME IS NULL
2011/04/21(木) 15:04:20.54ID:???RFCに則ってつくるだけでいいじゃん
ていうか、テキストなKVSってあんの?
0090NAME IS NULL
2011/04/21(木) 18:10:12.47ID:???0091NAME IS NULL
2011/04/21(木) 19:07:40.75ID:???何かしらのライブラリを選べる環境で敢えてCSVを選ぶメリットをkwsk
0092NAME IS NULL
2011/04/21(木) 19:48:28.72ID:???顧客の要求仕様どおりに作ることができる
0093NAME IS NULL
2011/04/21(木) 19:56:15.36ID:???それは仕様と呼ぶものであってメリットとは呼ばないわな。
複数の選択肢がある中で敢えてCSVを選ぶメリットをkwsk
0094NAME IS NULL
2011/04/21(木) 19:59:24.73ID:???各種データベース形式 20年
CSV形式 1000年
紙 10000年
0095NAME IS NULL
2011/04/21(木) 20:14:46.66ID:???DBへインポートもしやすいし
エクスポートも結局CSVだったりするし
TSVは人に説明するのが面倒
0096NAME IS NULL
2011/04/21(木) 20:51:10.94ID:???>>87がCSVを選ぶ方がいいと考えているレスだと思った理由kwsk
0097NAME IS NULL
2011/04/21(木) 21:56:12.74ID:???0098NAME IS NULL
2011/04/21(木) 22:31:02.80ID:???との事。
0099NAME IS NULL
2011/04/22(金) 02:36:17.43ID:???0100NAME IS NULL
2011/04/24(日) 04:58:56.89ID:???あほすぎるファクターを持ち込まないでくれ
0101NAME IS NULL
2011/04/24(日) 12:35:06.04ID:???でもこれが全てでゴールだろ
0102NAME IS NULL
2011/04/24(日) 15:42:28.54ID:???0103NAME IS NULL
2011/04/24(日) 21:27:33.45ID:???そういうのはマ板でやれよ
0104NAME IS NULL
2011/04/25(月) 00:09:22.10ID:bEXHKNc/SELECT * FROM test WHERE hogehoge = examplehoge
ヒットしたのでそれ以降は検索してないということでしょうか?
DB内のhogehogeカラムにはexamplehogeが10箇所ほどあるので10個ほど結果が返ってくるのを期待したのですが。
環境はSQL3でPHP5.3とPDOを使ってやってます。
念のため結果をvar_dumpしてみましたが1個しか入ってませんでした。
0105NAME IS NULL
2011/04/25(月) 00:13:44.62ID:???0106NAME IS NULL
2011/04/25(月) 01:25:01.42ID:???0107NAME IS NULL
2011/04/25(月) 04:07:17.71ID:???俺も SQL の問題ではないと見る
0108104
2011/04/25(月) 07:57:18.87ID:bEXHKNc/$sql = "SELECT * FROM test WHERE hogehoge = examplehoge";
$conn = new PDO("sqlite:/test.sql3");
$stmt = $conn->prepare($sql);
$stmt->execute();
$row = $stmt->fetch();
となってます。
複数の環境に入れる可能性があったのでPDOを初めて使っています。
0109NAME IS NULL
2011/04/25(月) 09:22:06.47ID:???while ($row = $conn->fetch()) {
$result[] = $row;
}
0110NAME IS NULL
2011/04/25(月) 12:49:03.28ID:???ループさせてなきゃ最初の1行しか取れないのは当然だろう。
SQLite 関係ない。
0111NAME IS NULL
2011/04/25(月) 14:05:19.28ID:???設計と実装をごっちゃにすんなよ屑が
0112NAME IS NULL
2011/04/25(月) 14:32:18.34ID:???0113NAME IS NULL
2011/04/26(火) 20:58:29.83ID:???0114NAME IS NULL
2011/04/27(水) 18:48:20.19ID:???0115NAME IS NULL
2011/04/30(土) 20:14:11.60ID:???0116NAME IS NULL
2011/04/30(土) 20:34:30.73ID:???つうかスレ違い
0117NAME IS NULL
2011/05/01(日) 08:55:06.88ID:???なぜ入れ替える必要があるの?
0118NAME IS NULL
2011/05/01(日) 14:09:43.67ID:???入れ替えなければいけないケースはあり得ないとでも?
0119NAME IS NULL
2011/05/01(日) 14:54:59.71ID:???0120NAME IS NULL
2011/05/01(日) 15:03:53.33ID:???無計画にカラム追加したテーブルは開発がし辛いからだろ
0121NAME IS NULL
2011/05/01(日) 15:06:52.92ID:???設計書が見づらくなる程度で、プログラム上はなんも変わらないだろ
0122NAME IS NULL
2011/05/01(日) 15:31:37.94ID:???自動生成物が見づらくなるっつってんの
もう黙って
0123NAME IS NULL
2011/05/01(日) 17:18:23.35ID:???「見づらい」だけで十分変更理由になると思うが?
つうかスレ違いっつってんだろ
0124NAME IS NULL
2011/05/02(月) 11:38:31.69ID:???0125NAME IS NULL
2011/05/02(月) 16:35:00.56ID:???ワロスwww
0126NAME IS NULL
2011/05/02(月) 18:46:30.59ID:???0127NAME IS NULL
2011/05/02(月) 18:49:11.34ID:???0128NAME IS NULL
2011/05/02(月) 19:02:45.63ID:???0129NAME IS NULL
2011/05/02(月) 21:01:56.94ID:???0130NAME IS NULL
2011/05/02(月) 22:41:19.38ID:???0131NAME IS NULL
2011/05/17(火) 11:46:00.69ID:???そんなに高頻度で書き換えなければ、トランザクションで書き換えとけば無問題な感じですか?
基本的なことわかってないので、
そういうロック周りのこと解説してあるところありませんかね?
Access使えって話だけど、2007使えんし、VBAだとイロイロキツいのだす。
0132NAME IS NULL
2011/05/17(火) 13:42:45.26ID:???問題大有りに決まってんだろ馬鹿が
0133NAME IS NULL
2011/05/17(火) 13:51:53.61ID:???なんでこういうバカってSQLiteでやろうとすんだろ?
0134NAME IS NULL
2011/05/17(火) 14:27:37.50ID:???まったく問題ない
>>131,132 のような低能が多いから気をつけろよ
0135NAME IS NULL
2011/05/17(火) 15:00:05.26ID:???0136NAME IS NULL
2011/05/17(火) 15:21:35.13ID:???バカに何でだめか、バカでもわかるよう教えてやれw
0137NAME IS NULL
2011/05/17(火) 15:35:20.94ID:???そういう問いにたいしてちゃんと説明しているぜ
結論から言えば更新頻度が少ないならよっぽど大規模サイトでも無い限り問題ないがな
0138NAME IS NULL
2011/05/17(火) 15:44:20.06ID:???NFSならな。>>131はどう考えてもWinだぞ。SMBでdbファイル共有なんて
考えたくもないわ。
0139NAME IS NULL
2011/05/17(火) 17:40:21.40ID:???おんなじように、ネットワークフォルダでAccess使うのと、リスク同じくらいじゃないの?
そりゃ避けた方がより良いのは当然だけど。
0140NAME IS NULL
2011/05/17(火) 18:09:10.58ID:???大丈夫だよ
sambaもファイルロックはサポートしてます
0141NAME IS NULL
2011/05/17(火) 19:26:41.05ID:???0142NAME IS NULL
2011/05/17(火) 21:44:01.46ID:???0143NAME IS NULL
2011/05/17(火) 23:27:31.38ID:???自分で好きなようにサーバーや、クライアントに入れるソフトを設定できない事もある。
融通が全然きかないと。
0144NAME IS NULL
2011/05/17(火) 23:59:57.59ID:???更新頻度が少ないなんて理由にもならん理由で問題ないとか言える糞脳みそを持ってると人生楽そうで羨ましい
0145NAME IS NULL
2011/05/18(水) 00:12:56.64ID:???馬鹿には理解できないからなw
恥さらすなよww
0146131
2011/05/18(水) 00:50:23.23ID:???どうせ 数回/分 の書き換えなので、ファイルバックアップしながら使ってみることにします。
サーバにRDBMS入れて動かす権限も能力もないのよ… バカでスマヌ
そーいや、昔は毎日のようにファイル壊れてたAccessも、最近はてんで壊れなくなったなァ…
いや、Accessが良くなった訳じゃないけど。
スレチ杉スマソ
0147NAME IS NULL
2011/05/18(水) 04:48:48.32ID:???0148NAME IS NULL
2011/05/18(水) 11:06:01.38ID:???消えろ
0149NAME IS NULL
2011/05/19(木) 00:46:57.43ID:???要はAccessが使いにくいから、SQLiteで代用できんかって質問だろw
0150NAME IS NULL
2011/05/19(木) 14:34:05.77ID:???そう思ってたら輪をかけてSQLiteがひどいことが判明した
ってとこですよね。
0151NAME IS NULL
2011/05/19(木) 15:34:30.97ID:???馬鹿じゃないのか?
0152NAME IS NULL
2011/05/19(木) 15:57:10.42ID:???馬鹿はあなたですよ。ふふっ
0153NAME IS NULL
2011/05/19(木) 16:30:09.82ID:???馬鹿はあなたですよ。ふふっ
0154NAME IS NULL
2011/05/22(日) 19:20:36.24ID:???// : : : : : : : : : /\ : : \: : : : : : : : v:ハ、 な…何なのこの雰囲気…
: : : : : : : /: : / 丶: : : : : : : : : : : ハ|V{ハ このままじゃあ皆…
ii : : : : : : : : : / }: : : : : : : : : : i:i:|ivi:リ
|i : : : i : : i : :, ー=-‐':|`ヽ:i: : : : : : じじハ
|i : : : | : :ハ:i| j| jハ : : : : |: |i i|ハ, . ヘ、
ハ : : :iiハi:{ 八 '"芹示 |: : : : ハ: じj/: : : : : ヽ
V :ハ从,茫ミ、 v:ツ | : : ,/,ハ: V: : : : : : : :/}
i爪: :\ vリ ....::::::: ノ : :/r' У: : : : : ,ィ彡' ,. ヘ、
` ミ;ゝ.:: , `ー彡|_/: : : : : :/ _/ : : : : :ヽ
丶 、..:::) / |�Y: : : : : :/_,ィ勿' : : : : : ,ィ刋
,. :'" > . _ . r: ´ / 丶: : : : i三彡': : : : : :ムィ'"
/ : : : : : :_:_:_:_,≪r‐一 ´ / ̄ ̄ ̄`'く: : : : : :/
ヽ : r<´ ̄ ̄i i| ,ィー…< / \: : / /
0155NAME IS NULL
2011/05/22(日) 22:11:58.40ID:???0156NAME IS NULL
2011/05/24(火) 16:06:03.32ID:???0157NAME IS NULL
2011/05/24(火) 18:49:17.52ID:???アタッチできますよ。
0158NAME IS NULL
2011/06/05(日) 07:56:33.34ID:zgB9UHdm0160NAME IS NULL
2011/06/07(火) 15:30:44.24ID:js37uI9cMacOSX
sqlite3
apache2
perlでCGI
DBD::sqlite
というDBにコネクトしてる状態で
my $insert = "insert into space(hoge) values ('hoge');";
$dbh->do($insert);
などinsert文を実行しようとしたらエラーがでます、select文などは問題ないのですがいったい何が原因なんでしょうか?
0161NAME IS NULL
2011/06/07(火) 15:56:20.23ID:???0162NAME IS NULL
2011/06/07(火) 21:46:42.26ID:???エラーが出ますって
エラーメッセージって出ないの?
0163NAME IS NULL
2011/06/07(火) 23:41:45.42ID:???エラーメッセージは出てないんじゃないかな、たぶん
エラーメッセージの出し方から教えてあげるといいよ
0164NAME IS NULL
2011/06/08(水) 00:21:54.87ID:???でerrorlogをチェックするとか、
$dbh->trace(1, 'trace.log');
でログを吐くとか。
0165NAME IS NULL
2011/06/08(水) 00:49:40.12ID:???sqlite3
Android2.2
アンドロイドで作ったアプリでCSV1からDB1を作成しました。
その後、CSV1の更新ファイルであるCSV2から同じ手順でDB2を作成しました。
CSV2はCSV1のデータをすべて含んでおり、かつ、4行分登録されるデータが多いです。
ところが、作成したDB1とDB2を比べると、データ数の少ないDB1の方がDB2より9k程大きいのです。
データが欠けていないかと、DBファイルをダンプして比較しましたが、
データ自体に欠けはなく、DB2はきちんとCSVの差分だけDB1より多くデータを持っていました。
こういったことが起こる原因について、ご教示願えないでしょうか?
0166NAME IS NULL
2011/06/08(水) 03:03:38.83ID:???データ量にあわせてDBも大きくなるけど、小さくはならない
アプリがどうやってるかしらんけど、なんか本来のデータとは
別に裏でデータを追加したり削除してるから大きくなった。
0167NAME IS NULL
2011/06/08(水) 12:48:00.72ID:yzo9cLWq[error] [client ::1] DBD::SQLite::st execute failed: unable to open database file(14) at dbdimp.c line 403 at ***.cgi
です
どういう意味でしょうか?
0168NAME IS NULL
2011/06/08(水) 12:57:15.42ID:???見たまんまなわけだが。
0169NAME IS NULL
2011/06/08(水) 13:03:26.83ID:yzo9cLWq[error] [client ::1] DBD::SQLite::st execute failed: unable to open database file(14) at dbdimp.c line 403 at ***.cgi line 14
0170NAME IS NULL
2011/06/08(水) 13:05:33.32ID:yzo9cLWqmy $insert = "insert into space(hoge) values ('hoge');";
$dbh->do($insert);
0171NAME IS NULL
2011/06/08(水) 13:12:20.28ID:???0172NAME IS NULL
2011/06/08(水) 13:12:35.06ID:???DBIで宣言したsqliteのDBファイルが存在しないんじゃないの?
0173NAME IS NULL
2011/06/08(水) 20:05:30.16ID:???失敗し、実行:*** cgiの14行でdbdimp.c403行でデータベースファイル(14)を開くことができません
0174NAME IS NULL
2011/06/14(火) 00:56:06.64ID:???phpで@sqlite_openで作ったファイルをPupSQLiteで開こうとすると
暗号化されたファイルです。とか出て開くことができませんが、sqlitecc3jだと普通に開けます。
で、PupSQLiteでファイルを作成して、@sqlite_openで読もうとするとエラーになってしまいます。
これはPupSQLiteがあんまり良くなくて、読み込みや保存がうまくできないということでしょうか?
0175NAME IS NULL
2011/06/14(火) 02:02:55.30ID:???0176NAME IS NULL
2011/06/14(火) 04:17:56.13ID:???PHPは詳しくないんだが、確かPHPでのSQLite接続方法は2つあるはず
片方がSQLite2形式でもう片方がSQLite3形式
でPHP製のSQLiteManagerのソースを検索してみたらsqlite_open関数はSQLite2用らしい
SQLiteCC3JはSQLite2とSQLite3に対応していて
PupSQLiteはSQLite3のみに対応しているからそのせいだね
0177NAME IS NULL
2011/06/15(水) 22:20:13.52ID:???しかし、phpの関数を変えてもロリポップはsql3が使えなかったんでsql3使えるレンタルサーバー探してみます。
PupSQLiteは使い勝手がいいんで、こっちに問題がなくて良かったです。
ありがとうございます。
0178NAME IS NULL
2011/06/19(日) 14:29:00.42ID:???トランザクションの前後でflockすればいいのか?
0179NAME IS NULL
2011/06/19(日) 16:07:54.28ID:???そんな必要はない
自動的にロックされる
0180NAME IS NULL
2011/06/19(日) 20:53:01.04ID:8vVW7TIm内包させることを検討しているのですが、何か方法はありませんでしょうか?
ファイルの該当部分をメモリ上に読み込み、それをsqliteのAPIから利用できる形に
することが出来れば良いと思うのですが、具体的な手段が思いつかず…。
(イメージとしては、インメモリDBとして展開/保存、メモリ上のsqliteデータをopen/close、等々...)
なお、ファイルフォーマットは、以下のようなものを考えています。
[独自ファイルヘッダ][独自ファイルデータA][SQLiteデータ][独自ファイルデータB][独自ファイルフッダ]
言語はC、OSはLinuxを考えていますが、将来的にWindowsも視野に入れるかもしれません。
0181NAME IS NULL
2011/06/19(日) 22:31:00.94ID:???0182NAME IS NULL
2011/06/20(月) 08:20:15.17ID:???起動時にSqliteをiin-memoryとして接続し、shema作ってやればいいんじゃないの?
0183180
2011/06/20(月) 19:25:23.30ID:fmQ7dwYyありがとうございます。
RAMディスク上に展開したものを普通にsqlite3_open、ということでしょうか。
対象がRAMディスクが使える環境ばかりでは無いので、別の方法を検討します…。
>>182
ありがとうございます。
アプリケーションでschemaを決め打ちにしておいてインメモリDBを作成し、
ファイルから読み込んだデータをインメモリDBへ流し込む、というイメージでよろしいでしょうか?
ファイルにあるデータをインメモリDBへ展開する手段が想像できないので、
お手数ですが、もう少し詳しく説明していただけると助かります。
0184NAME IS NULL
2011/06/20(月) 19:38:11.53ID:???0185180
2011/06/20(月) 21:03:52.34ID:fmQ7dwYy私の理解力不足で、>>182氏の言っている内容から、
>起動時にSqliteをiin-memoryとして接続し、shema作って
何を「やれば」良いのかが読みとれなかったため、質問させていただきました。
なお、SQLiteデータ格納部分のファイル形式は、何か詳細なイメージがあるわけではなく、
アプリケーションから読み込み、最終的にsqliteのAPIから使用できれば何でも良いと考えています。
0186NAME IS NULL
2011/06/20(月) 21:48:44.68ID:???どうしても内包したいんだったら、起動時に/tmpにでもコピっとけよ
0187NAME IS NULL
2011/06/20(月) 21:52:58.16ID:???Sqlite dbをキャッシュとして使用する発想です。
ファイルの内容をin-memory dbに取り込む。
データの更新は、SqliteのAPIは基本SQLの実行以上のことはできなかったと思う(もしかしたら、ユーザー定義関数を使用すればできるかもしれない)ので、このin-memory dbに対してSQLを発行(insert, update, delete)して行う。
最終的にファイルに保存する際、in-memory dbの内容をselect文で抽出し書き込む。
in-memory dbの作成(接続)は、openする時にファイルパスの代わりにmemoryって文字列を渡せばよかったはず(うろ覚えなのでドキュメントで確かめてね)
0188187
2011/06/20(月) 21:57:32.48ID:???なせわざわさsqliteに取り込むのか?そこを説明してもらえれば、別の解決策を提示できるかもしれません。
0189187
2011/06/20(月) 22:01:52.68ID:???0190NAME IS NULL
2011/06/21(火) 05:28:32.98ID:???まぁ、一回騙されたと思ってサンプルどおりに実装してみなよ
0191180
2011/06/21(火) 19:19:51.52ID:???皆様ありがとうございます。
ファイル内に取り込みたい最大の理由はファイルの互換性です。
過去に作成したアプリケーションにおいて、以下のようなファイルフォーマットを使用しているのですが、
[独自ファイルヘッダ][独自ファイルデータA][独自ファイルデータB][独自ファイルフッダ]
アプリケーションの新バージョンを作るにあたって、内部でSQLiteの使用を検討しており、
データ保存の際にはSQLiteのDBも含めて書き出したいため、以下のようなフォーマットを思いついた次第です。
[独自ファイルヘッダ][独自ファイルデータA][SQLiteデータ][独自ファイルデータB][独自ファイルフッダ]
※過去バージョンの仕様上、新バージョンで書き出したファイルを開く場合は、SQLiteのDB部分を無視し、
その他のデータ部分のみ参照/編集することが可能、保存の際はSQLiteのDB部(というより未定義部分)はそのまま書き出す。
別ファイル展開も選択肢の一つとして考えていないわけでは無いのですが、そこにデータがあるのに同じ物を展開して
再オープン、というのはどうもスマートではない気がするので、直接読み込む方法を模索している、といった状況です。
>>190
過去スレにそういう人がいたとしたら(いたっけ…?)人違いです。すいません。
サンプルとは…?
0192NAME IS NULL
2011/06/21(火) 22:28:50.32ID:fvG5wZhxUZEE
0193NAME IS NULL
2011/06/21(火) 23:57:48.48ID:???センス無いね
そもそも[SQLiteデータ]って何よ?
それに過去バージョンでSQLiteデータとやらを読み飛ばして作業したら、整合が取れないじゃないか
0194NAME IS NULL
2011/06/22(水) 00:25:23.69ID:???>>191読んでやりたい事は分かったが俺には思いつかねえw
本体に手を入れてまんまダンプする関数を増やす、とか... orz
0195NAME IS NULL
2011/06/22(水) 00:57:56.29ID:???2chでセンスを求めちゃイカンw
>アプリケーションから読み込み、最終的にsqliteのAPIから使用できれば何でも良い
ってあるから、そういうデータなんじゃね?w
例えばsqliteファイルをtar玉ごとメモリに読み込んでdbハンドラに繋げるようなイメージをエスパーしてるが正解かは知らんw
>>194補足
↑のイメージならin-memory dbをそのままダンプしてやってファイルに収める仕掛けを実装すれば
いけるんじゃネーノ?とか思ってるけどsqlite.cを読んだことがないヘタレだから出来るのかはワカランorz
0196NAME IS NULL
2011/06/22(水) 01:40:33.29ID:???昔DRHが近いネタをsqlite-usersに書いてたような気がする。
記憶違いだったらすまん。
0197NAME IS NULL
2011/06/22(水) 17:48:46.52ID:???DBサイズが固定なら出来る
サイズが変更されるなら当然無理
0198NAME IS NULL
2011/06/22(水) 17:51:13.07ID:???Linux限定だけど
0199NAME IS NULL
2011/06/22(水) 19:58:32.98ID:???アタッチってできますか?
アタッチはできたみたい(リターン:0)
ですが いざSELECTすると no such table
になってしまいます。。。。
cmd = New SQLiteCommand("ATTACH '" & strdbname & "' AS '" & strname & "'", Me.conn)
cmd.CommandType = CommandType.Text
'SQL実行
intResult = cmd.ExecuteNonQuery()
cmd = New SQLiteCommand
cmd = Me.conn.CreateCommand
cmd.CommandText = "SELECT tablename FROM PDA.tblInfo"
'SQL実行結果をデータセットに格納
Dim adp As SQLiteDataAdapter
adp = New SQLiteDataAdapter(cmd)
エラー→ adp.Fill(ds)
0200NAME IS NULL
2011/06/22(水) 22:21:20.96ID:???0201NAME IS NULL
2011/06/22(水) 22:22:07.45ID:???>>198ね
0202NAME IS NULL
2011/06/22(水) 22:27:07.50ID:???0203NAME IS NULL
2011/06/22(水) 22:28:17.75ID:???ヘッダフッタがあるから問題なくね?
普通にできると思うけど全体で見たら遅すぎて話にならない
0204NAME IS NULL
2011/06/22(水) 22:34:44.79ID:???0205NAME IS NULL
2011/06/23(木) 00:41:08.76ID:???SQLをdumpして保存したらいいよ。圧縮くらいはしたほうがいいかもな
使うときは、:memoryにimportね
0206NAME IS NULL
2011/06/23(木) 19:40:16.74ID:???毎回DB作り直すのかよ
0207NAME IS NULL
2011/06/25(土) 03:25:45.33ID:???普通に独自ファイルデータとやらをSQLiteDBに突っ込めよ糞ウンコちゃん
0208NAME IS NULL
2011/06/25(土) 12:29:25.66ID:???インメモリDBなら当然だろ。
0209NAME IS NULL
2011/06/25(土) 12:30:11.54ID:???頭悪そうw
0210NAME IS NULL
2011/06/25(土) 21:27:06.64ID:???ひとつの方法ではあると思うぞ。
頭悪そうと思った理由書いてくれないかな。
0211NAME IS NULL
2011/06/25(土) 22:50:59.86ID:???俺は209ではないが、
・スレをちゃんと読んでいる場合
→日本語の理解能力が足りない。頭悪そう。
・スレをちゃんと読んでいない
→常識のない人間。頭悪そう。
・いずれの場合でも
→言葉遣いが明らかに頭悪そう。
っていうことだと思うよ。
0212NAME IS NULL
2011/06/25(土) 23:08:30.19ID:???要するに「頭悪そう」って書きたかっただけなのか。
それこそ頭悪そうだなw
0213NAME IS NULL
2011/06/25(土) 23:43:17.66ID:???0214180
2011/06/26(日) 00:22:51.21ID:???近いネタですかー。mail-archiveあたりで探してみようと思います。
ありがとうございます。
>>205-206
DBのサイズが大きい場合の速度は確かに気になりそうですが、
shell.cのdump_*関数を流用するだけで済みそうなので実装は簡単そうですね。
ありがとうございます。
>>207
それが簡単なのは認識しているのですが、前述の通り互換性の問題から
(前バージョンで開けないファイルになる)選択肢には入れていないのです…。
ありがとうございます。
センスと初期設計がまずいのは自覚しております…。
ヒントを沢山いただいたので、この先は自力で頑張ってみます。
皆様色々とありがとうございました。
0215NAME IS NULL
2011/06/26(日) 00:55:38.27ID:???なぜデータまでまとめようとするのか
旧ver→独自ファイルのみ、新ver→独自ファイル+DB
それだけの話じゃねーの?
0216NAME IS NULL
2011/06/26(日) 01:00:51.50ID:???0217NAME IS NULL
2011/06/26(日) 01:29:39.01ID:???意味不明な前方互換にこだわるな
ほんの少し調べりゃdumpが真っ先に見つかるだろボケ
その汚物の様なセンスを人前にさらすな
0218NAME IS NULL
2011/06/26(日) 01:48:18.70ID:???そういう話なのかは知らないけどw
0219NAME IS NULL
2011/06/26(日) 02:17:55.21ID:???言いたい事はわかるが・・・それはどうしても外せない要件ではないだろうし
初期設計どうこう言えないクソ設計としか言いようがない
0220NAME IS NULL
2011/06/26(日) 03:29:30.63ID:???顧客がアホなんだろ。たぶん。
0221NAME IS NULL
2011/06/26(日) 05:24:04.50ID:???と言ってるんだから別に顧客からの要求じゃなくて自己満足によるものだろ
0222NAME IS NULL
2011/06/26(日) 08:36:18.68ID:???でも、他人がとやかく言う話じゃないと思う。
0223NAME IS NULL
2011/06/26(日) 13:21:19.87ID:???0224NAME IS NULL
2011/06/26(日) 19:00:04.17ID:???動機を聞く ってのがまず余計なお世話なんだよな
「お前のためだから」 って態度がむかつくわ
0226NAME IS NULL
2011/06/26(日) 20:31:20.11ID:???1ファイル1データベース
運用方法としては後者が正しいと思いますが、
やたらdbファイルができるシステムを組んでる人がいて、
中身みてみたら1ファイル1テーブルになっていました。
なんか1ファイル1テーブルにする理由とかあるんでしょうか?
0227NAME IS NULL
2011/06/26(日) 21:08:14.58ID:???>やたらdbファイルができるシステムを組んでる人がいて、
>中身みてみたら1ファイル1テーブルになっていました。
>なんか1ファイル1テーブルにする理由とかあるんでしょうか?
その人に聞いてみたらいいんじゃね。
0228NAME IS NULL
2011/06/26(日) 23:03:39.16ID:???あまり平気ではない。
DBが壊れてたりとかは無いけど、パフォーマンスは悪い。
0229NAME IS NULL
2011/06/26(日) 23:49:43.55ID:???>あまり平気ではない。
>DBが壊れてたりとかは無いけど、パフォーマンスは悪い。
ん?「YouTubeやニコ動などのヘビーなサイト」を SQLite
で運用したことあるってことか?
マジなら漢だと思う。
0230NAME IS NULL
2011/06/27(月) 00:20:05.19ID:???あれ?SQLiteってファイル単位で排他制御が行われるんじゃなかったっけ?
0231NAME IS NULL
2011/06/27(月) 01:22:45.67ID:???もしかしてSQLiteがファイルロックってことすら知らないの?
0232NAME IS NULL
2011/06/27(月) 13:40:00.83ID:???0233NAME IS NULL
2011/06/28(火) 15:35:20.60ID:???0234NAME IS NULL
2011/06/29(水) 02:55:09.13ID:???0235NAME IS NULL
2011/06/29(水) 07:59:11.70ID:???0236NAME IS NULL
2011/06/30(木) 06:00:31.88ID:???0237NAME IS NULL
2011/06/30(木) 12:39:52.57ID:???だと状況によっては・・・
0238NAME IS NULL
2011/06/30(木) 18:02:52.64ID:/Ojq8+Ij「expected 32 columns of data but found 40」というエラーが出ます。
どうすればインポート出来ますでしょうか。
ご教授願います。
0239NAME IS NULL
2011/06/30(木) 18:27:34.21ID:???0240NAME IS NULL
2011/06/30(木) 20:34:40.33ID:???0241NAME IS NULL
2011/06/30(木) 21:00:10.06ID:???0242NAME IS NULL
2011/06/30(木) 21:01:10.90ID:???0244NAME IS NULL
2011/07/02(土) 20:46:20.78ID:???楽をする方法はありませんか?
0245NAME IS NULL
2011/07/02(土) 21:09:03.36ID:???コマンドーラインからリダイレクトで流してもいい。
0246NAME IS NULL
2011/07/02(土) 21:22:24.44ID:???0247NAME IS NULL
2011/07/02(土) 21:23:43.16ID:???0248NAME IS NULL
2011/07/02(土) 21:52:13.69ID:???ファイルに入った SQL の実行
.read <ファイル名>
http://www.kkaneko.com/rinkou/sqlite/sqlitecommand.html#eq_4
0249NAME IS NULL
2011/07/05(火) 20:34:20.66ID:???0250NAME IS NULL
2011/07/05(火) 21:02:16.76ID:???test.sqliteというファイルを作ったら、
これはrootでcreate database testをしたということでいいんでしょうか?
それでtest.sqliteに、テーブルを作っていくわけですが、
create table a (
) encoding=utf8 collate utf8_unicode_ci;
みたいのはどうしたらいいんでしょうか?
pragma encoding="UTF-8";
create table a (
);
create table b (
);
のようにやっていき、
SELECT時にも最初に、
pragma encoding="UTF-8";
と入れればいいのでしょうか?
0251NAME IS NULL
2011/07/06(水) 18:00:39.42ID:???プログラム側でしっかりチェックしろっていうことでしょうか?
check(length(col<=10))とか制約いれてもエラーにはならないようですが
11文字以上でも普通に入ってしまいます
0252NAME IS NULL
2011/07/06(水) 23:32:23.92ID:???varcharだのintだのってのはただの飾りですから
0253NAME IS NULL
2011/07/07(木) 09:05:54.96ID:???0254NAME IS NULL
2011/07/07(木) 11:06:46.90ID:???0255NAME IS NULL
2011/07/07(木) 11:12:14.47ID:???0256 忍法帖【Lv=17,xxxPT】
2011/07/08(金) 07:59:29.78ID:CxszCXG9ブラウザから取り出して表示してみたりしてたところ
ブラウザからの書き込みで延々と処理が先に進まない事態がおきました
これはいわゆるデッドロックってやつかもしれませんがどうやって調べるのでしょうか?
MySQLだとSHOW INNODB STATUSなんかで調べれるみたいですけど
SQLiteではどうするのでしょう?
というかDBレベルのロックだからデッドロック発生しないって書いてたのに・・・
0257256
2011/07/08(金) 13:59:37.74ID:CxszCXG9ChromeとOperaはinsertできるのに
FirefoxとIEはなぜかできないorz
何か情報ないでしょうか?
0258256
2011/07/08(金) 14:58:49.76ID:CxszCXG9ヘッダ見ながら作業してたら根本的にinsertプログラムへのPOSTができていませんでした
原因はボタン複数回おすのを防止するJavaScriptの挙動がおかしくて
先の画面へいかないことが原因でした
お恥ずかしい・・・
0259NAME IS NULL
2011/07/08(金) 18:37:21.24ID:???0260NAME IS NULL
2011/07/10(日) 15:43:02.54ID:???同時書き込みができないのを考えるとSQLiteは向いてませんかね?
0261NAME IS NULL
2011/07/10(日) 15:47:29.04ID:???0262NAME IS NULL
2011/07/10(日) 15:58:32.67ID:???C言語が使えるなら、データベースはそれより遅い。
0263NAME IS NULL
2011/07/10(日) 16:00:07.48ID:???オープンソースだから梱包すれば良いのか
0264NAME IS NULL
2011/07/10(日) 16:07:45.51ID:???0265NAME IS NULL
2011/07/10(日) 16:07:49.36ID:???マルチ・同時アクセスも処理できるだろ。
0266NAME IS NULL
2011/07/10(日) 16:14:06.67ID:???http://ziddy.japan.zdnet.com/qa4310712.html
PHP5.0+SQLite2.8でユーザー投稿型のサイトを個人運営しています。
1日数万ページビューほどの規模で、
データベースのテーブルのレコード数は数万件、1レコードあたりのカラム数は数十件ほどあり、そのテーブルに1日数百件の投稿があります。
それらのデータは随時更新・削除・検索されます。
データベースファイルへのINSERT、UPDATE、DELETE、SELECTなどが重なると「database is locked」とのエラーメッセージが表示され、
それからもずっとユーザーによるデータベースへのアクセスが続くため、データベースへのアクセスがしづらい、もしくはまったくできない状態が延々と続いてしまいます。
0267NAME IS NULL
2011/07/10(日) 23:36:30.24ID:???0268NAME IS NULL
2011/07/11(月) 00:09:40.38ID:???一日数万ビューって多いのか普通なのかわからんが。
0269NAME IS NULL
2011/07/11(月) 01:41:15.21ID:???0270NAME IS NULL
2011/07/11(月) 01:50:48.74ID:???0271NAME IS NULL
2011/07/13(水) 09:09:23.84ID:???だまされたでー
0272NAME IS NULL
2011/07/13(水) 11:38:23.45ID:???0273NAME IS NULL
2011/07/13(水) 17:03:23.57ID:???あるあるw
0274NAME IS NULL
2011/07/13(水) 19:14:24.77ID:???0275NAME IS NULL
2011/07/14(木) 03:50:12.45ID:???select distinct sid, unameみたいに複数指定して取り出そうとすると消えてくれません。
たぶんこの場合sidとuname両方が重複してれば削除ということになるんでしょうが、
sidのみの重複を削除してその他のカラムも一緒に取りたい場合どう書けばいいんですか?
0276NAME IS NULL
2011/07/14(木) 08:15:42.49ID:???0279NAME IS NULL
2011/07/14(木) 14:15:29.18ID:???select sid,min(uname) from table group by sid
とかできるけど、、、
あとはサブクエリかな
0280NAME IS NULL
2011/07/16(土) 16:10:35.52ID:yPv+Kx9j0281NAME IS NULL
2011/07/16(土) 17:27:35.88ID:???0282NAME IS NULL
2011/07/16(土) 23:11:08.88ID:???0283NAME IS NULL
2011/07/16(土) 23:42:03.52ID:???プログラムで使用してるのはutf8でデータベースに入れてるのもutf8だけど不都合は今のところ生じてない
0284>>280
2011/07/17(日) 04:31:36.46ID:???>>283
その場合、例えば sqlite3_column_text16() 呼んだ後に、アプリ側でutf8に変換してるって事ですかね。
あれ? もしかしてsqlite3_column_text()使えば変換してくれるのかな?
sqlite3_prepare系は引数のsql文の文字コードにあわせて読んでやれば、勝手にdbに適した文字コードに変換される?
0285NAME IS NULL
2011/07/17(日) 09:41:30.17ID:???文字ごとに長さがころころ変わるUTF-8は問題外、サロゲートだの何だの無理やり感満点のUNICODEももう役割を終える時期
0286NAME IS NULL
2011/07/17(日) 22:31:42.88ID:???1レコード増えるだけでだいぶ時間が遅くなってきます。
SQLiteの組み込み関数を使ったり、150レコードと50レコードほどのものをUNIONしたものを、
さらにSELECTしている感じですが、
1件レコードを増やしたら1回のセレクトが5/100000秒増えます。
適切なインデックスは貼ってるつもりで、トランザクション処理も行っています。
単純計算でレコードが1万あったら0.5秒、10万件あったら5秒もかかります。
データベース使うのは始めてなんですが、こういうものなんでしょうか?
それとも僕の設計が悪いんでしょうか?
いらないレコードはどんどん削除したほうがいいんでしょうか?
質問だらけですみませんが、よろしくお願いします。
0287NAME IS NULL
2011/07/17(日) 23:06:29.54ID:???設計が悪いんだろうな
スキーマ見せれ
0288NAME IS NULL
2011/07/17(日) 23:07:18.88ID:???0289NAME IS NULL
2011/07/17(日) 23:36:12.22ID:???0290286
2011/07/17(日) 23:39:14.03ID:???こんなかんじになります。
member
id integer pk nn
name text nn
callender
id integer pk nn
uid integer nn --member.id
date integer nn --日付を表すunixtime
todo text nn
unique(uid, date)
default_callender
id integer pk nn
uid integer nn --member.id
week integer nn --曜日を表す数字0〜6
todo text nn
unique(uid, week)
インデックスはcallender.dateに貼っています
これでcallenderとdefault_callenderの曜日を
strftimeでY-m-d形式に変換したものをunionしています。
0291286
2011/07/17(日) 23:50:37.10ID:???callender.dateに貼っているのは、
callender側の条件で1週間以内を指定するからです。
where `date` < strftime('%s', 'now')-(3600*24*7)
default_callenderは月曜日にピアノの稽古みたいなのが入っていて、
callenderは7/18(のunixtime)に◯◯さんと食事みたいのが入ります。
unionすると7/18は◯◯さんと食事とピアノの稽古といった具合になります。
0292NAME IS NULL
2011/07/17(日) 23:59:42.25ID:???0293NAME IS NULL
2011/07/18(月) 00:02:36.71ID:???idにも晴
0294286
2011/07/18(月) 00:10:05.64ID:???週間カレンダーのSELECTでして、whereはdateしか指定ないですし、
uidにも貼ってみたんですが、こちらはやはり効果がありませんでした。
default_callender.weekについてもやはり効果はありません。
callender.dateはやはり効果がありました。
他にインデックス貼るものはない気がしますが、
そうなると設計自体に問題があるんですかね・・・
strftimeとか使ってるところもマイナス要素なんでしょうか。
>>293
idはpkなのでたぶん最初から貼られてます。
0295NAME IS NULL
2011/07/18(月) 00:33:14.53ID:???これをwhereに書くな
って言うかどっかで見た
マルチだな
0296286
2011/07/18(月) 00:35:51.99ID:???を、
where `date` < (select strftime('%s', 'now')-(3600*24*7))
に変えたら1%ほど早くなりました。
>>295
マルチはしていません。
教えていただければそのやりとりを見たいです。
0297286
2011/07/18(月) 00:54:46.66ID:???取り除いたところ30%以上早くなりました。
他にも無駄がおおそうなので後はなんとか頑張ってみます。
お騒がせしました。
0298NAME IS NULL
2011/07/18(月) 05:56:55.91ID:???人に説明するのに中途半端なオレオレ用語使うなよ…
0299NAME IS NULL
2011/07/18(月) 06:18:18.79ID:???0300NAME IS NULL
2011/07/18(月) 07:16:48.06ID:???DB設計ツールでよく見るぞ
0301NAME IS NULL
2011/07/18(月) 09:19:25.87ID:???0302NAME IS NULL
2011/07/18(月) 09:47:40.58ID:???知らないなら覚えときな。
PK = PRIMARY KEY
FK = FOREIGN KEY
UNN = UNIQUE NOT NULL
NN = NOT NULL
0303NAME IS NULL
2011/07/18(月) 10:12:47.48ID:???まぁ略語は察せるようにはなったほうがいいよ
あまり変なものだとキレたくなるけどNNは一般的だから
0304NAME IS NULL
2011/07/18(月) 10:26:18.36ID:???漏れはすぐに判った
0305NAME IS NULL
2011/07/18(月) 10:50:09.85ID:???0306NAME IS NULL
2011/07/18(月) 11:53:36.82ID:???0307NAME IS NULL
2011/07/18(月) 11:56:07.96ID:???プライマリーキックと
フォーリンキックな
0308NAME IS NULL
2011/07/18(月) 12:47:00.93ID:???0309NAME IS NULL
2011/07/18(月) 13:41:58.10ID:???0310NAME IS NULL
2011/07/18(月) 14:33:42.32ID:???0311NAME IS NULL
2011/07/18(月) 18:27:24.13ID:???0312NAME IS NULL
2011/07/18(月) 20:24:19.55ID:???0313NAME IS NULL
2011/07/19(火) 11:50:05.12ID:???http://www.google.co.jp/search?q=sql+nn&lr=lang_en
の結果を見ても一般的な頭字語とは到底思えないけど
PKと同じ文脈でNNが出てきたら判る
まぁ select * from sqlite_master の結果を張った方が質問する方も回答する方も楽よね
0314NAME IS NULL
2011/07/19(火) 12:44:01.43ID:???0315NAME IS NULL
2011/07/21(木) 22:24:44.67ID:???VARCHAR(255)とかTEXT(255)があったほうがFileIOの効率いいと思うし
他のRDBはみんなあると思うがなんでないの?
0316NAME IS NULL
2011/07/21(木) 23:31:10.14ID:???面倒くさいから
0317NAME IS NULL
2011/07/22(金) 01:12:36.85ID:???なのに速いんだよな。
なんでなんだろうな。
0318NAME IS NULL
2011/07/22(金) 01:13:29.84ID:???0319NAME IS NULL
2011/07/22(金) 14:05:23.35ID:???0320NAME IS NULL
2011/07/22(金) 21:10:18.24ID:???0321NAME IS NULL
2011/07/23(土) 10:38:12.82ID:???0322NAME IS NULL
2011/07/23(土) 14:37:17.54ID:???そんなことでFileIOの効率なんざ変わらないから
馬鹿なお前の場合、HDDは4KB単位でしか読み書きできないと覚えておくと良い
0323NAME IS NULL
2011/07/23(土) 14:48:47.93ID:???0324NAME IS NULL
2011/07/23(土) 21:20:42.29ID:???0325NAME IS NULL
2011/07/23(土) 21:38:53.11ID:???512バイトから可能とか寝ぼけた事言わんように
0326NAME IS NULL
2011/07/23(土) 22:38:02.82ID:???0327NAME IS NULL
2011/07/23(土) 22:45:45.01ID:???0328NAME IS NULL
2011/07/23(土) 22:50:19.55ID:???頭悪そうな煽りばかりでなく正解を示したら?
0329NAME IS NULL
2011/07/24(日) 00:42:36.96ID:???0330NAME IS NULL
2011/07/24(日) 01:14:13.90ID:???>頭悪そうな煽りばかりでなく正解を示したら?
適当な HDD のデータシートのセクターサイズ見ればいいだけだろ。
例えば HGST Deskstar 7K3000
http://www.hitachigst.com/tech/techlib.nsf/techdocs/155901D3B251D9A9862577D50023A20A/$file/DS7K3000_ds.pdf
0331NAME IS NULL
2011/07/24(日) 05:10:40.93ID:???0332NAME IS NULL
2011/07/24(日) 08:49:32.19ID:???0333NAME IS NULL
2011/07/24(日) 14:32:25.37ID:???0334NAME IS NULL
2011/07/24(日) 14:37:26.86ID:???0335NAME IS NULL
2011/07/24(日) 15:43:53.10ID:???つまり合格率はあるが競争率は無いな
0336NAME IS NULL
2011/07/24(日) 20:03:14.27ID:???どこが間違ってるか具体的に指摘してやったほうがいい。
正論でガツンと凹ませてやれ。
0337NAME IS NULL
2011/07/24(日) 20:11:59.93ID:???無理。頭悪いからw
0338NAME IS NULL
2011/07/24(日) 20:41:42.60ID:???> やっぱ頭悪いだけだったね
頭悪そうな煽りばかりでなく正解を示したら? (w
0339NAME IS NULL
2011/07/24(日) 20:59:48.42ID:???0340NAME IS NULL
2011/07/24(日) 21:01:45.00ID:???0341NAME IS NULL
2011/07/24(日) 21:44:41.93ID:???0342NAME IS NULL
2011/07/25(月) 00:46:46.82ID:???物理的に512bytesぴったりで読み書きしてると思うなんてクサレ脳みそ過ぎるだろ
一体何のために何十MBもキャッシュ積んでると思ってんだ
馬鹿すぎる
0343NAME IS NULL
2011/07/25(月) 01:30:30.88ID:???「HDDは1sector(512bytes)単位の読み書きをサポートしている」と繰り返してたって事か?
んなこと知ってるから安心してくれ
0344NAME IS NULL
2011/07/25(月) 01:59:16.46ID:???>物理的に512bytesぴったりで読み書きしてると思うなんてクサレ脳みそ過ぎるだろ
「HDDは4KB単位でしか読み書きできないと覚えておくと良い」とかほざいてた奴が
いたようだが? (w
0345NAME IS NULL
2011/07/25(月) 02:53:41.86ID:???0346NAME IS NULL
2011/07/25(月) 06:49:24.50ID:???>>324がブッチギリに恥ずかしい
以上
0347NAME IS NULL
2011/07/25(月) 10:52:40.92ID:???>「馬鹿なお前の場合」を抜かすなよ馬鹿…
馬鹿に嘘教えてドヤ顔?
どんどん深みにはまってるぞ。(w
>>346
そんなに悔しかったの?
反論するなら 4KB がどこから来たのか説明してからにしてくれよな。
0348NAME IS NULL
2011/07/25(月) 13:59:42.62ID:???他に何が違うのか教えてほしいわwww
0349NAME IS NULL
2011/07/25(月) 14:38:47.48ID:???0350NAME IS NULL
2011/07/25(月) 15:14:47.09ID:???0351NAME IS NULL
2011/07/25(月) 18:23:37.03ID:???0352NAME IS NULL
2011/07/25(月) 19:17:45.74ID:???0353NAME IS NULL
2011/07/25(月) 19:45:12.23ID:???一人なら全力で追い出す
0354NAME IS NULL
2011/07/25(月) 19:56:32.15ID:???>>353がすべてを自演してない限り>>353含め馬鹿は複数居る。
よかったね。さよなら。
0355NAME IS NULL
2011/07/26(火) 00:32:49.23ID:???0356NAME IS NULL
2011/07/26(火) 01:21:47.14ID:???精神異常か
0357NAME IS NULL
2011/07/26(火) 01:31:32.23ID:???0358NAME IS NULL
2011/07/26(火) 01:37:41.54ID:???0359NAME IS NULL
2011/07/26(火) 04:27:38.14ID:???精神異常だな
0360NAME IS NULL
2011/07/26(火) 08:05:27.33ID:???どのSQLがいいかを見極めるためにいくつかviewを作ったり改良したりしながら、
F5を連打して秒数を測っていたのですが、あるタイミングから(たぶんF5を抑えつけたとき)
viewを作成できなくなり、select以外の他の操作も受け付けなくなりました。
トランザクション開始→select * from viewを1000回測って平均を出す→コミット
という感じでやってたのですが、何が原因でどう対処したらいいのでしょうか?
データベースファイルが壊れてしまったんでしょうか?
0361360
2011/07/26(火) 08:16:51.24ID:???削除も移動もできないため、Apacheを止めてみたら削除できるようになりました。
本番環境で同じことが起きたら非常に困るのですが、これデッドロックですかね?
F5押しっぱなしによるApacheの処理が終わらない段階で、
クライアント側で(Apacheとは関係ない所で)ビューを作成してしまったから起きたのでしょうか?
ログもないし原因がわからず困ってます。
0362NAME IS NULL
2011/07/26(火) 09:26:09.60ID:???0363NAME IS NULL
2011/07/26(火) 10:34:52.22ID:???ロック中にapacheのスレッド状態とか見てなかったの?
0364NAME IS NULL
2011/07/26(火) 10:44:56.89ID:???コンソールプログラムから
同じトランザクション、同じクエリをforループでおくりまくってみたら?
人力でF5押すより再現性があると思うし、Apacheが関係しているかもわかるはず。
0365361
2011/07/26(火) 11:02:16.74ID:???レスありがとうございます。
>ロック中にapacheのスレッド状態とか見てなかったの?
Apacheはあまり詳しくなく、見ていませんでした。
エラーログも見てみましたが、さすがになさそうです。
>コンソールプログラムから
>同じトランザクション、同じクエリをforループでおくりまくってみたら?
>人力でF5押すより再現性があると思うし、Apacheが関係しているかもわかるはず。
再現しようと思ってなかなかできなかったので試してみます。
0366NAME IS NULL
2011/07/27(水) 20:51:42.32ID:???0367NAME IS NULL
2011/07/28(木) 04:53:43.45ID:???0368NAME IS NULL
2011/08/26(金) 14:00:32.32ID:???0369NAME IS NULL
2011/09/09(金) 19:18:35.78ID:aXxL9ygvログイン後に操作するデータベースとファイルを分けたほうがいいでしょうか?
それとも同じファイルでテーブルだけ分ければいいでしょうか?
0370NAME IS NULL
2011/09/09(金) 23:31:57.78ID:???0371NAME IS NULL
2011/09/11(日) 00:04:28.03ID:???1つしかデータベース付与されないから全部それでやるしかないでしょ?
0372NAME IS NULL
2011/09/11(日) 20:45:29.69ID:???すると
>SQLite header and source version mismatch
とメッセージが出て対処法が分かりません。教えてください
初心者スレがあったら誘導してください
0373NAME IS NULL
2011/09/11(日) 22:11:17.88ID:???Google 知ってるか?
0374NAME IS NULL
2011/09/11(日) 22:28:59.83ID:???0375NAME IS NULL
2011/09/11(日) 22:38:48.38ID:???0376NAME IS NULL
2011/09/11(日) 22:40:17.37ID:???自分で貼ってるメッセージに書いてある通りでしょ。
mismatchだと言ってるんだから同じにしてやればいいんじゃないの?
0377NAME IS NULL
2011/09/11(日) 22:50:47.53ID:???小学生に何を求めているの?
>>376
その手段が分からない
0378NAME IS NULL
2011/09/11(日) 23:42:45.63ID:???何でそんなに偉そうに質問してるんだよ。
答えて欲しかったらまず自分の環境とやりたいことくらいは最初に書け。
OSは?OSのバージョンは?SQLiteのインストール手順は?
SQLiteのバージョンは?ヘッダファイルのバージョンは?
利用はコマンドラインから?それとも何かのプログラム言語から?
ちなみに、開発者サイト[http://www.sqlite.org/]からたどれば大抵のことは解決するよ。
mail-archiveへのリンクとかもあるし。
0379NAME IS NULL
2011/09/15(木) 16:25:17.77ID:???Ubuntu11.04
インストール手順
公式からsqlite-autoconf-3070701.tar.gzをDL
$tar zxvf sqlite-autoconf-3070701.tar.gz
$cd sqlite-autoconf-3070701
$./configure
$make
$sudo make install
バージョンは不明
利用はコマンドラインから
ちなみに自己解決した。sqlite関連全部消してみて
/usr/local/bin/sqltie3がコマンドで消しても残ってたので管理者権限で消した
$sudo apt-get install sqlite3
したら思った通りに動いた。色んなものが消えたけど
0380NAME IS NULL
2011/09/15(木) 16:40:19.72ID:???0381NAME IS NULL
2011/09/15(木) 19:46:46.63ID:???0382NAME IS NULL
2011/09/15(木) 21:09:24.32ID:???0383NAME IS NULL
2011/09/15(木) 22:10:15.98ID:???おとなげないか?
0384NAME IS NULL
2011/09/21(水) 23:36:46.60ID:???0385NAME IS NULL
2011/10/01(土) 00:36:05.63ID:???立ち読みでパラパラと見てみましたが、
SQLite の関数の章の記述が幾分増えているようです。
自分はもう買うつもりないので、買った方いたらレビューよろしくです。
SQL辞典 第2版―7大データベース対応 (Pocket詳解) (堀江美彦 著)
http://www.amazon.co.jp/dp/4798030821
0386NAME IS NULL
2011/10/14(金) 12:08:04.39ID:???ttp://developers.slashdot.jp/story/11/10/13/0224245/
Google+ で Rob Pike 氏が語ったところによると、C 言語の開発者、K&R の R であるところの Dennis Ritchie 博士が亡くなられた。
70 歳 (Rob Pike 氏による Google+ への投稿) 。
長らく闘病中だったとのことで、先週末に自宅で息を引き取ったそうだ。
0387NAME IS NULL
2011/10/20(木) 06:33:47.96ID:fKz8HpBahttp://www.sqlite.org/syntaxdiagrams.html#type-name
↑の、
・型名が複数続くケース
・型名の後に(signed-num)が続くケース
・型名の後に(signed-num, signed-num)が続くケース
って何に使われるんでしょう?
0388NAME IS NULL
2011/10/22(土) 21:29:55.50ID:???SQLiteでこのようなフォーマットのテーブルに
datetime,real,real,real,real
↓この形式のcsvファイルをインポートするのですが
2008-01-02 18:01:00,64.30,64.30,64.30,64.30
↓このように、時間が記録できません
2008-01-02 64.30 64.30 64.30 64.30
アドバイスおながいします
0389NAME IS NULL
2011/10/23(日) 02:05:49.31ID:???インポートのやり方が間違っているか
取得の方法が間違っているか のどちらかです。
0390NAME IS NULL
2011/10/23(日) 13:34:53.73ID:???0391NAME IS NULL
2011/10/23(日) 18:44:19.13ID:???0392NAME IS NULL
2011/10/23(日) 18:47:26.89ID:4TwsFYCq自作アプリで
5万件のデータに対して抽出処理を行ったけど
勿論、ロジックは同じ
DB接続は数種類切り替えれるような設計になっている
・sqliteは検索結果画面を出すのに数秒かかる
・Oracleに接続を切り替えると、一瞬で検索結果画面が出る
扱う件数が万を超えるような処理になると
実用に値しない
0393NAME IS NULL
2011/10/23(日) 18:58:32.42ID:???インデックスの張り方間違えてね?
5万件程度なら一瞬だぞ
0394NAME IS NULL
2011/10/23(日) 19:00:21.38ID:???SQLite側も同じくらいには高速動作するよう調整しなきゃダメだろ。
0395NAME IS NULL
2011/10/23(日) 19:12:22.88ID:4TwsFYCqインデックスも何も主キーで問い合わせてるんだがw
同じSQLと処理でこうも違うと致命的だな
0396NAME IS NULL
2011/10/23(日) 19:22:00.00ID:???うちも10万件程度のを扱ってるけど主キーで取るのに
数秒なんてありえない。それこそ一瞬だわ。
画面に出力するロジックが悪いんじゃないか?
0397NAME IS NULL
2011/10/23(日) 20:02:42.35ID:4TwsFYCq>>392 で
「oracleでは一瞬で画面まで出ている」
と書いてるだろう
ロジックは同じで
sqliteの場合だけ異常に遅い
どう考えてもsqliteに問題があるとしか思えん
ちなみにアプリはjava
使用しているJDBCドライバは
sqlite-jdbc-3.6.20.jar
これに不具合があるのかも知れんが、そこまでは知らん
0398NAME IS NULL
2011/10/23(日) 20:30:17.67ID:???0399NAME IS NULL
2011/10/23(日) 20:50:54.44ID:4TwsFYCq同じ条件で処理させて
sqliteの場合だけ異常に遅い
原因はsqlite側に在るのは明らかだ
あとは、sqlite側のドライバの問題なのか?本体の問題なのか?
どっちかだ
仮に
最新版のドライバに更新したら改善されたのならJDBCドライバの問題だろう
それでも解決しなければsqlite本体の問題だろう
0400NAME IS NULL
2011/10/23(日) 21:47:41.05ID:???まず試してから質問しろよ
0401NAME IS NULL
2011/10/23(日) 22:25:57.75ID:4TwsFYCq質問だと?w
何を勘違いしてるんだ?
ドライバの問題だったとしても
sqlite が糞であることには変わりない
そもそも
何で更新しなきゃならんのだ?
sqlite-jdbc-3.6.20.jar
は実用に耐えれるから、当時配布したんじゃなかったのか?
それを普通に使って
数万件程度の問い合わせで、異常に遅くなるようなシロモノだったのか?
いずれにせよ実用には値しない
0402NAME IS NULL
2011/10/23(日) 22:30:38.34ID:???0403NAME IS NULL
2011/10/24(月) 00:02:02.20ID:???>sqlite-jdbc-3.6.20.jar
>は実用に耐えれるから、当時配布したんじゃなかったのか?
誰もそんなの検証してないよ。
sqlite作者とは関係ない、ただの個人が作って配布してるだけだし。
そんなjdbcドライバとoracleを比べてる時点で間違い。
0404NAME IS NULL
2011/10/24(月) 00:11:48.48ID:???それでも数秒かかるならSQLiteが悪いんだろうがそうでなきゃ
JDBCがヘボいだけかと。
0405NAME IS NULL
2011/10/24(月) 00:58:16.42ID:???マならクエリやスキーマの一つでも張れよ
0406NAME IS NULL
2011/10/24(月) 02:20:16.49ID:???とにかく何かOracleでだけインデックスが効くような使い方してるんだろうな。
例えば count(*) は SQLite ではフルスキャンになるからクソ遅くなるけど、Oracle は一瞬で出る、とかね。
とにかく具体的なスキーマと問い合わせ文出してくれないことにはまともな議論にならんよ>>399
0407NAME IS NULL
2011/10/24(月) 02:55:42.31ID:0tWsNn64主キーで書いてるのに虫かよw
0408NAME IS NULL
2011/10/24(月) 08:08:59.47ID:???0409NAME IS NULL
2011/10/24(月) 08:10:46.31ID:???さっさとスキーマと問い合わせ文晒してみ。
まともな話する気がないなら巣にお帰り。
0410NAME IS NULL
2011/10/24(月) 18:04:48.57ID:0tWsNn64使えん糞DBだな
0411NAME IS NULL
2011/10/24(月) 18:51:27.72ID:???いいからさっさと晒せ
0412NAME IS NULL
2011/10/24(月) 19:06:46.47ID:0tWsNn64主キーで検索かけて遅延するってどういうこと?
いくらなんでも我慢できん
ほかのDB探すわ
0413NAME IS NULL
2011/10/24(月) 19:18:23.12ID:???0414NAME IS NULL
2011/10/24(月) 19:43:51.59ID:0tWsNn64いい事なんか無いことわかった
0415NAME IS NULL
2011/10/24(月) 19:57:25.32ID:???再現できるようにするのがフェアじゃないかな
信者じゃないけど
プロトタイプとか簡単なテストはSQLiteで済ませているから糞でも構わない
まぁ、体感的に遅い気はするけど、自分で*DBMS/KVSを書くよりましだろうし
0416NAME IS NULL
2011/10/24(月) 20:14:43.40ID:0tWsNn64おまえ基本知らないだろw
0417NAME IS NULL
2011/10/24(月) 21:06:32.18ID:09cja/xi人一杯いるじゃん!
>>387 おせーてよ!
0418NAME IS NULL
2011/10/24(月) 21:10:20.49ID:???0419NAME IS NULL
2011/10/24(月) 21:18:07.72ID:0tWsNn64ハkッキリとわかった
まさか主キーで検索してこの座mあとか・・・
使え根ー
0420NAME IS NULL
2011/10/24(月) 22:09:05.55ID:???よく知らんが、いくつか検索した結果をまとめると
テーブル定義の時点では他のプログラマのために
カラムの文字数や数値の範囲を明示するために使用するようだ。
これはSQLiteで型指定が大雑把すぎることが起因する。
0421NAME IS NULL
2011/10/24(月) 23:04:40.19ID:???>CREATE TABLEするときの、カラムの型指定で、
>http://www.sqlite.org/syntaxdiagrams.html#type-name
>↑の、
>・型名が複数続くケース
知らん
>・型名の後に(signed-num)が続くケース
varchar(20)とか
>・型名の後に(signed-num, signed-num)が続くケース
知らん
0422NAME IS NULL
2011/10/24(月) 23:14:54.77ID:0tWsNn64件数が万単位になると急激に劣化するとか
糞すぎて使い物にならんね
さっさとほかのDBの検討したほうがマシだ
0423NAME IS NULL
2011/10/24(月) 23:19:17.77ID:???包茎くん、乙
0424NAME IS NULL
2011/10/24(月) 23:20:32.48ID:0tWsNn64どうなってるんだろうな?
驚くばかりだ
他のDBと比較すると歴然とする
実用に耐えれん
0425NAME IS NULL
2011/10/24(月) 23:25:17.82ID:09cja/xi>>421
はーなるほど
サンクス
それならと、探してみたら明記されてました。
http://www.sqlite.org/datatype3.html
の 2.2 Affinity Name Examples
Note that numeric arguments in parentheses that following the type name
(ex: "VARCHAR(255)") are ignored by SQLite - SQLite does not impose
any length restrictions (other than the large global SQLITE_MAX_LENGTH limit)
on the length of strings, BLOBs or numeric values.
(数字)つけても意味ない、と。
>・型名が複数続くケース
UNSIGNED BIG INT
DOUBLE PRECISION
VARYING CHARACTER
NATIVE CHARACTER
こういう奴ですね。
結局、こっちも内部の型に変換されるだけで意味はないようですが
0426NAME IS NULL
2011/10/25(火) 00:48:54.33ID:???サードパーティ製の怪しいJDBCドライバを使っておきながら、原因の切り分けもしないで
SQLiteが糞すぎるの何のアホなこと言うから、主キー云々のアホな回答しか帰ってこなくなる。
そもそも組み込みDBのSQLiteと、Oracle DBを比較している時点で目的が意味不明。
Oracleを使える環境で、Oracleが良いなら、黙ってOracleを使えば良いだけ。
そうじゃなくて組み込みDBを使いたいなら、SQLiteは標準ではC言語用のAPIしかサポートしてないから、
同じJavaで書かれているDerbyなりH2DBなりを使った方が幸せになれるよ。
0427NAME IS NULL
2011/10/25(火) 07:08:48.75ID:???ただの荒らしにマジレスするなよ
0428NAME IS NULL
2011/10/25(火) 07:10:29.96ID:???0429NAME IS NULL
2011/10/25(火) 07:37:32.19ID:gceqE9iTどんだけマイナーなんだよw
アプリから使う想定してないDBなんか使えるかw
0430NAME IS NULL
2011/10/25(火) 08:09:28.07ID:gceqE9iTsqlite-jdbc-3.7.2.jar
特に改善傾向なし
これは本体DBの問題に間違いないな・・・
そもそも正規のJDBCドライバを配布してないとか
どんだけ糞なんだよ
DBなんてアプリから使われるから存在するんだろ
まさかコマンドラインのみの使用を想定してるのか?w
どんだけ間口が狭いんだよw
この分じゃあ・NET系統ドライバも怪しいな・・・
0431NAME IS NULL
2011/10/25(火) 08:15:26.05ID:gceqE9iTいや失望した
と言った方がいいな
まさかjavaからの接続に正規サポートすらしてないとか・・・
今の主流言語さえも対応してないのか?
この糞DBは
一体、どういう使われ方を想定してんだ?w
まさかコンソールからのコマンド入力しか想定してねーのか?w
どうせ、・NET系統ドライバも正規対応してねーんだろ?
アプリからは接続非推奨です!キリッ
って書いとけよw
0432NAME IS NULL
2011/10/25(火) 08:21:04.44ID:???0433NAME IS NULL
2011/10/25(火) 08:28:46.56ID:???世界中バカばっか
と思えるところがすごい
普通じぶんがどこか違ってるんじゃないかって思うよね
次に環境も症状も書き込まずに延々内容のないグチしかないのがすごい
インターネットは双方向のコミュニケーションなのに、ググッてなんでも調べられるからオレ、インターネット得意とかいっちゃうタイプ
0434NAME IS NULL
2011/10/25(火) 09:00:22.17ID:gceqE9iT0435NAME IS NULL
2011/10/25(火) 09:09:50.41ID:gceqE9iT増やしたらとまるんじゃね?
と懸念してしまうほど糞すぎる
何なら他のdbでも試みてもよい
たとえばh2、あるいはmYsqlなども候補だが
しかし、まさか10万件程度で異常なほど遅いことにはなるまい
0436NAME IS NULL
2011/10/25(火) 10:12:23.57ID:???勘違いとか何とかじゃなくてただのネタなんだから反応するなよ
0437NAME IS NULL
2011/10/25(火) 10:23:25.90ID:gceqE9iT事実が糞なんだから仕方ない
0438NAME IS NULL
2011/10/25(火) 10:26:53.34ID:gceqE9iTなぁ、アプリ用途に正規ドライバさえも出さないような
糞dbをどうやって使えばいいんだ?
教えてくれよwwww
0439NAME IS NULL
2011/10/25(火) 10:30:59.97ID:???プロトタイプとテスト用途に使ってください
どれくらい遅いのか数値なりグラフなり再現可能なデータセットを示してから議論をお願いしますね
0440NAME IS NULL
2011/10/25(火) 10:31:22.51ID:???0441NAME IS NULL
2011/10/25(火) 11:03:10.02ID:gceqE9iTおらくる---一瞬
糞db---5秒
このデータ突きつけられて
まだ言い訳するのか?
おらくる最強
そして糞dbは使えない、いくらフリーだからって、もっと良いdbあるだろ?
0442NAME IS NULL
2011/10/25(火) 11:04:24.07ID:gceqE9iTはぁ?W
そのテスト用とさえも使えないんだよ!
何しろアプリと接続したらボトルネックが凄いんだからW
もう実用に耐えれるレベルじゃねーだろ・・・
0443NAME IS NULL
2011/10/25(火) 12:48:16.95ID:???0444NAME IS NULL
2011/10/25(火) 12:58:54.20ID:???君のマシンが糞だったんだろうな、FS見直したらどうだろうか
再現性の無いデータに意味はあるのでしょうか
0445NAME IS NULL
2011/10/25(火) 13:26:35.29ID:???0446NAME IS NULL
2011/10/25(火) 13:49:57.26ID:gceqE9iT最初使ってた時は軽量で使いやすいと思ってた
気軽にアプリと接続できたし
特に設定いらなかった
型とか、文字数の厳密な定義なしに自動的に拡張してくれる仕組みも
お手軽さは好感していた
しかし、データが万を超えると
急激にレスが悪化するとは・・・
これは予想してなかった・・・
こんな糞DBを使い続けろというのか?
それは勘弁してくれ
0447NAME IS NULL
2011/10/25(火) 13:51:10.81ID:gceqE9iT再現性もなにも
毎回異常にレスポンスが遅いんだが
つまり再現率100パーセントだ!
こんな糞DBは使いたくないよ・・・
0448NAME IS NULL
2011/10/25(火) 14:32:21.03ID:???お前はここに何を求めて書き込んでるんだ。
0449NAME IS NULL
2011/10/25(火) 14:38:17.40ID:???おねだりの芸を始めるようになるから
0450NAME IS NULL
2011/10/25(火) 15:32:56.98ID:gceqE9iT確かに酷だが
それにしても
たった数万件の問い合わせ如きで異常な遅延が」発生するって
もう絶句だわ・・・
どうやって
こんな糞dbを使えばいいんだ?
0451NAME IS NULL
2011/10/25(火) 18:31:38.06ID:???単なる荒らしって面白くもなんとないし自分に得られる事も何一つとして無い無駄な時間じゃん。
何か目的があるんだろうけど、具体的な構成や問い合わせ方法を聞いても答えが返ってこないのを
見ると、煽って問題無い実例を引き出そうとしてんのかな?
0452NAME IS NULL
2011/10/25(火) 18:50:14.24ID:???余程の糞案件にぶち当たって鬱憤晴らしたいんだろうな、とか。
0453NAME IS NULL
2011/10/25(火) 19:17:26.59ID:???0454NAME IS NULL
2011/10/25(火) 19:24:47.54ID:gceqE9iT期待していた分、コレだよ・・・
0455NAME IS NULL
2011/10/25(火) 19:30:46.17ID:gceqE9iTどうしてだろうな?
「主キーで検索してるだけ」なんだが
こんなにレスが遅い理由がわからんよ
単純に件数が多いから?
つまり糞dbでFA?
0456NAME IS NULL
2011/10/25(火) 20:18:16.12ID:???ネタじゃないならマジレスしてやるが、どうしてもSQLiteを使わないといけない案件を抱えていて、
遅くて困ってるなら相談に乗るから、その「主キーで検索してるだけなのに遅い」現象の再現ソースを全部貼れ。
出来ないなら、糞DBかどうかFAを出す材料が無い(最新版とやらのJDBCドライバだって怪しい)し、
遅いと言っているのが本当かどうか証明にもならないから、他の組み込みDBに乗り換えろ。さようなら。
上でも書かれてるけど、SQLiteはC言語用の組み込みDBだからC言語のAPIしか提供していないし、
DerbyはJava言語用の組み込みDBだからJava言語のAPI(JDBC)しか提供してない。組み込みDBってのはそういうもの。
特に理由も無いのに、正規にサポートされてない言語のAPIを使って文句を言うのはただの馬鹿。
あと、速くて素敵なOracle社はSQLiteのスポンサーなので、遅いのが本当ならOracleにも文句言っとけば?
0457NAME IS NULL
2011/10/25(火) 20:23:51.56ID:gceqE9iT> 上でも書かれてるけど、SQLiteはC言語用の組み込みDBだからC言語のAPIしか提供していないし、
この書き方だとCからの呼び出しなら
ちゃんと遅延なく結果が返ってくるように読み取れるんだが
どうせCでも遅いんだろ?
一回試してみるから
そのCのライブラリとやらを教えてくれ
取得部分だけCで書いてみる
そして、それをJAVAから呼び出す
0458NAME IS NULL
2011/10/25(火) 21:04:21.92ID:???100%ネタなんだからマジレスするなっつってるだろ
0459NAME IS NULL
2011/10/25(火) 22:01:01.28ID:???知識不足乙。「SQLite」が、C言語で書かれたライブラリの名前。
SQLiteというDBMSがあって、それに接続するためのC言語のライブラリが配布されているわけじゃない。
お前が使っているJDBCドライバも含めて、色んな人が趣味で書いて公開しているSQLiteのJDBCドライバは、
まさにその「取得部分だけC」で書いて、インターフェースをJavaのJNIで叩く、ということをやってるだけ。
その怪しいJDBCドライバの中によほど余分な処理が詰め込まれてるなら別だが、基本的にJNIでもJNAでも
速度を求めるには使い物にならないほど遅いから、わざわざ同じものを自作しても結果が変わらずに時間を無駄にするだけ。
そもそもJavaからCは色々無理がある。別のプロセスを呼び出しなんてやったら更に遅いしね。
まあ、自作して少しでも速度が改善するようなら、JDBCドライバの作者がアホだったことの証明にはなるかもしれんが…。
マジレスついでに聞くけど、そこまでしてSQLiteを使わないといけない理由は?
使い物にならないなら使わなけりゃ良いだけだし、再現ソースも貼らずに文句垂れてるだけだから、ネタにしか見えない。
「SQLiteじゃないと駄目な理由」が言えないなら、ネタは終わりにしてOracle DBを使え。
>>458
マジレスしたいお年頃だったんだ。ごめんね。
0460NAME IS NULL
2011/10/25(火) 22:26:35.84ID:gceqE9iT最新にバージョンアップしたが
sqlite-jdbc-3.7.2.jar
これが怪しいのか?
一般に公開されていて、他のサイトでも紹介されてるようだが
何でお前如きが「怪しい」と断言できるんだ?
それなりに定評あるドライバじゃないのか?
まぁ糞dbであることには間違いないがねw
0461NAME IS NULL
2011/10/25(火) 22:28:52.34ID:gceqE9iTそもそも「公式のドライバ」が無い時点でおかしいだろ!
アプリから接続を想定してないのか?
一体、どんなアプリだったら「公式」の接続が想定されてるんだ?w
お前なら知ってるだろ?w
それともコマンドラインしか使えない糞dbでFAか?
0462NAME IS NULL
2011/10/25(火) 22:35:11.61ID:gceqE9iT> まさにその「取得部分だけC」で書いて、インターフェースをJavaのJNIで叩く、ということをやってるだけ。
sqlitejdbc.dll
まさにコレのようだが
コイツが糞と言いたいのか?
まぁ実際に糞ロジックなんだろうがw
それとも取得部分のsqliteパッケージのコードも糞と言いたいのか?
まぁ実際に糞ロジックなんだろうがw
dbも含めて全部糞なのは間違いない
そこだけは意見は一致するw
0463NAME IS NULL
2011/10/25(火) 22:36:26.14ID:gceqE9iTまぁソースがあるから
どこがボトルネックになってるか
追跡も可能だが
どうせ本体も糞なんだからなぁw
0464NAME IS NULL
2011/10/25(火) 22:44:28.34ID:???0465NAME IS NULL
2011/10/25(火) 22:52:50.90ID:???金融系でもMySQLとか増えてるし、KVSにも流れてるし
0466NAME IS NULL
2011/10/25(火) 23:36:41.09ID:???本当に朝から晩まで中身の無いレス乙。
ますます文章が支離滅裂になってきたな。
一般に公開されていて、他のサイトで紹介されていても、
「怪しくない」ことの証明にも「それなりに定評がある」ことの証明にはならねえよ。
それとも、怪しくなくて、それなりに定評があったら速度も速いのか?
「SQLiteはCライブラリの名前」だと言っているだろう。「SQLite」という、C言語で使うdllファイルが配布されているだけ。
「公式()笑にJavaから利用できるドライバ」の時点で意味が通じない。Javaの勉強をし直してこい。
馬鹿に分かりやすく説明するなら、「access.dllは公式のドライバが無い時点でおかしい!」と言ってるのと同じ。
あと、馬鹿だから理解できてないみたいだけど、
SQLite本体 + 「取得部分だけC」 = sqlitejdbc.dll で、
sqlitejdbc.dll + 「それ用のJDBCドライバ」 = sqlite-jdbc-3.7.2.jar
だから、ネックはSQLite本体だけじゃなくて、sqlitejdbc.dllにある可能性も、JDBCドライバにある可能性もあるぞ。
もちろん、お前が書いたソースやSQLクエリにネックがある可能性もあるが、
再現ソースが無いなら、そこに問題が無いことの証明と、ネタじゃないことの確認ができないから、やっぱりネタ乙。
何かを質問したりする気が無いなら板違いだから、馴れ合い板か、自分のブログにでも書いてろ。
0467NAME IS NULL
2011/10/25(火) 23:41:30.14ID:???使うところでは結構使われてるよ。
流れているとは言っても、そう簡単には減らないと思う。
OracleはOracleでSQLiteのAPIをBerkeley DBに載せてみたりして
KVSや、それ以外の可能性も色々試しているように見えるけど…w
0468NAME IS NULL
2011/10/25(火) 23:52:48.09ID:???0469NAME IS NULL
2011/10/25(火) 23:57:13.43ID:gceqE9iTお前って馬鹿だろ?w
どうしようもない馬鹿だな
一回視ねよw
oracleで一瞬で帰ってくるクエリが
同じくそのまま糞DBで使ってるだけなんだが
何度もそういってるのに理解できないのか?
脳みそ入ってますか?w
確実に糞dbのせいだぞw
解釈のオプティマイザが糞なのか
ドライバの問題なのか
dllも糞なのか知らんが
あぁ全部糞の可能性も高いなw
それとも糞dbには糞SQLを専用に書き直さないとならんのかね?w
0470NAME IS NULL
2011/10/26(水) 00:00:10.28ID:UVgFZr+f何いってるんだ?コイツw
脳みそあるのか?
「sqlitejdbc.dll」 自体が糞dbの本体だろ!
それさえも知らんのか?w
一回視ね
この糞dll自体がとてつもなく極悪なつくりになってるんだろうなぁw
マジで使えないわ
まだH2の方が遥かに使えるんだが
何とかしろよ
糞dllを書き直すなりしろよ糞PG
0471NAME IS NULL
2011/10/26(水) 00:08:05.89ID:???0472NAME IS NULL
2011/10/26(水) 00:09:34.20ID:???「荒らしをスルーできない人もまた荒らし」って言葉、知ってる?
0473NAME IS NULL
2011/10/26(水) 00:10:27.66ID:???0474NAME IS NULL
2011/10/26(水) 00:13:37.02ID:???日付が変わってIDが違うだけで、>>470は荒らし本体と思ふ。
吠えてると言っても、自分に都合の悪い正論は全部読み飛ばしているだけの遠吠え。
>>465
あんまり詳しくないんだけど、金融系でKVSって、例えば何を使うんだろう?
0475NAME IS NULL
2011/10/26(水) 00:20:07.43ID:???0476NAME IS NULL
2011/10/26(水) 00:22:15.58ID:UVgFZr+f他のDBでも試しても良いが
間違いなく
糞db以外は一瞬で帰ってくるだろうよ
MYSQLが良いか?それともH2でさえ一瞬で返してくれるさ
たった数万件だぜ!
この程度の問い合わせで一瞬で返してくれない糞仕様dbを体験したのは初めてだぜ・・・
0477NAME IS NULL
2011/10/26(水) 01:02:45.28ID:???0478NAME IS NULL
2011/10/26(水) 01:18:13.61ID:???0479NAME IS NULL
2011/10/26(水) 01:19:31.27ID:???なんで朝から晩まで粘着しているのか
データベースのスキーマは?
0480NAME IS NULL
2011/10/26(水) 01:49:43.42ID:UVgFZr+fしかし糞DBは
何という遅さなんだ?
マジで使う気がしないわ
どうやったら数万程度の問い合わせでこうなるんだ?
データが10万件超えたらどうなるんだ?
もうすぐ増えると思うが
考えただけでも怖いわ・・・・
0481NAME IS NULL
2011/10/26(水) 01:51:14.74ID:rCz++wh/それなりに複雑なクエリーでも 20ms くらいで結果が取得できてる。
どうせ >>476 が作った DB は「主キー」とやらがただのカラムで、
インデックスなんか1個も作ってないんだろう。
0482NAME IS NULL
2011/10/26(水) 01:56:19.59ID:???> OracleはOracleでSQLiteのAPIをBerkeley DBに載せてみたりして
kwsk
0483NAME IS NULL
2011/10/26(水) 01:57:06.56ID:UVgFZr+f明確にPRIMARI KEYでテーブル作成して
そして主キーで検索かけてるんだが
これでも現実を否定するのか?
信者はツライなぁww
お前の言う複雑なクエリってのが
どうせwhere句に条件チョット入れただけのお子様SQLだろうがw
0484NAME IS NULL
2011/10/26(水) 01:58:13.20ID:???0485NAME IS NULL
2011/10/26(水) 01:58:47.73ID:UVgFZr+fひょっとして糞dbってに
PRIMARI KEY
と指定しても
アホだからインデックス構造すらないのかな?www
どうりで検索アホなわけだよwww
なーんだ基本のにPRIMARI KEY構造さえも無かったのかよww
そりゃ使えんわwww
0486NAME IS NULL
2011/10/26(水) 01:59:12.86ID:???0487NAME IS NULL
2011/10/26(水) 02:00:03.68ID:UVgFZr+f俺が間違ってたよ
万を超えるデータになってしまったのが悪かった
糞dbに万以上の問い合わせなんて土台無理だったんだよ・・・
すまんな糞dbと糞信者ども
ざまぁwww
0488NAME IS NULL
2011/10/26(水) 02:02:03.28ID:???いえいえ、自称PRIMARY KEY(笑)だけで検索するような
赤ちゃんSQLよりは遥かに複雑でございますよ
で、CREATE TABLE と SELECT 文はいつになったら
見せてくれるんですかね?
0489NAME IS NULL
2011/10/26(水) 02:03:47.05ID:UVgFZr+f明確にPRIMARI KEYでテーブル作成して
そして主キーで検索かけてるんだが
それでも
たった数万件で超絶遅延が起こるワケだが
これでも現実を否定するのか?
信者はツライなぁww
ないてるのか?ww
0490NAME IS NULL
2011/10/26(水) 02:06:03.22ID:???そりゃぁ PRIMARI KEY (爆笑) じゃぁ主キーにはならないよなぁw
0491NAME IS NULL
2011/10/26(水) 02:08:24.03ID:UVgFZr+fはぁ・・・
しかし、こんな糞dbは今まで見たことも聞いたことも無いわ
普通は主キーで問い合わせるのが一番高速なのだが
この糞dbには主キーの概念すらないのか?
どうせ
テーブル作成時の指定なんて、ただの飾りなんだろwww
そりゃサーバーとして動いてないような糞dbなんだから
マジでお子様db以下だよ
こんな糞dbに大事なデータなんて預けられんわ
0492NAME IS NULL
2011/10/26(水) 07:18:06.98ID:???このままずっと続けていって欲しい。
0493NAME IS NULL
2011/10/26(水) 07:26:18.32ID:???その生産力の無さに驚くわ
0494NAME IS NULL
2011/10/26(水) 08:01:37.43ID:???最近のBerkeley DB。
http://www.oracle.com/jp/products/database/berkeley-db/index.html
Wikipediaにもちょっと説明があるよ。
http://en.wikipedia.org/wiki/Berkeley_DB#Architecture
ちなみに、OracleがSQLiteに出資し始めたのが去年。(その前から色々やってはいたみたいだけど。)
http://blogs.oracle.com/berkeleydb/entry/oracle_join_the_sqlite_consort
http://journal.mycom.co.jp/news/2010/07/06/032/index.htm
0495NAME IS NULL
2011/10/26(水) 12:49:43.80ID:???0496NAME IS NULL
2011/10/26(水) 12:54:54.20ID:???0497NAME IS NULL
2011/10/26(水) 12:56:10.23ID:???0498NAME IS NULL
2011/10/26(水) 22:03:31.63ID:???ちなみに、ODBC経由。
javaは知らん。
どうせvacuumやreindexとかやってないんだろ。
0499NAME IS NULL
2011/10/26(水) 22:23:10.63ID:???いくらでもあるよ。
0500NAME IS NULL
2011/10/27(木) 11:12:09.78ID:VqqPO7vL3万ほどデータ突っ込んでみた
問い合わせ一瞬
0501NAME IS NULL
2011/10/27(木) 11:13:28.88ID:VqqPO7vLおらくる
H2
一瞬だった
さて糞dbは?数万件のデータで糞遅延・・・
使い門にならんよ
0502NAME IS NULL
2011/10/27(木) 11:21:50.87ID:VqqPO7vLjavaで書かれた
H2さえ一瞬だぞ
Cで書かれたという糞db様は?
えっ?遅延だと?
使い物にならんね・・・
0503NAME IS NULL
2011/10/27(木) 11:22:59.78ID:VqqPO7vL間違いなく
sqlliteは糞dbである
ことが証明されました!
この糞dbを使いこなすには
特殊な技術がいるんかね?
特殊技能認定受けてるのかね?ww
0504NAME IS NULL
2011/10/27(木) 12:00:03.50ID:???だよね。 sqliteでも数万件程度なら一瞬で検索が終わる。
上のほうで遅い遅いと騒いでる人がいたけど、問題解析能力が
無いのかな。
0505NAME IS NULL
2011/10/27(木) 12:01:02.61ID:???例の荒らしがNGパターンに引っかかったのか
0506NAME IS NULL
2011/10/27(木) 16:56:36.88ID:VqqPO7vLH2
5万件データ
初回問い合わせ 0.5秒
次回からはキャッシュが利いてるようだ
一瞬
どっちにしても一瞬の出来事だ
0507NAME IS NULL
2011/10/27(木) 16:57:09.01ID:VqqPO7vLさて
糞dbは?
数秒もかかるんだけど、それも毎回
なんで、こんなに糞なの?
0508NAME IS NULL
2011/10/27(木) 16:58:05.37ID:VqqPO7vL全くロジックは同じ
・Oracle さすがの一瞬
・H2意外に高速
・糞db、やっぱり糞は糞ですね・・・
もう糞dbを使うのは疲れるよ・・・
0509NAME IS NULL
2011/10/27(木) 17:03:55.59ID:VqqPO7vLおらくるに勝てないのは
仕方ない
だがH2でも一瞬で出来ることが
なんで糞dbになると出来ないの?
糞だから?
それを言っちゃあおしまいだよ
0510NAME IS NULL
2011/10/27(木) 20:37:40.45ID:???何度も自分でいっとるやん。議論おわっとるやん。議論する気無いやん。
前も聞いたんだが、ここに何を求めて来てるの?
問題を解決する手段が欲しいのなら状況をきちんと晒せと言われてるし、貴方以外の環境での反論も出てるわけだが、それへ反証する気も無いの?
0511NAME IS NULL
2011/10/27(木) 21:03:31.20ID:???荒らしてれば、同じ環境でこれだけ速いみたいな反証が出てくると思ってるんじゃない?
0512NAME IS NULL
2011/10/27(木) 21:28:59.08ID:VqqPO7vL> 状況をきちんと
俺のレスをちゃんと読んだ?
これ以上
どう説明しようがあるんだ?
主キーで検索して、このザマだぞ・・・
こんな糞db使いたくないよ
0513NAME IS NULL
2011/10/27(木) 21:46:11.95ID:???/;,, : : : //::/: : 7l,;:≠-::/: : / .l::|: : :l: :|;,,;!: : :!l: : :i: : : :|: : ::、 / ヽ
/ヽヽ: ://: :!:,X~::|: /;,,;,/: :/ リ!: ::/ノ l`ヽl !: : |: : : :l: :l: リ / そ そ お \
/: : ヽヾ/: : l/::l |/|||llllヾ,、 / |: :/ , -==、 l\:::|: : : :|i: | / う う 前 |
. /: : : //ヾ ; :|!: イ、||ll|||||::|| ノノ イ|||||||ヾ、 |: ::|!: : イ: ::|/ な 思 が
/: : ://: : :ヽソ::ヽl |{ i||ll"ン ´ i| l|||l"l `|: /|: : /'!/l ん う
∠: : : ~: : : : : : : :丶ゝ-―- , ー=z_ソ |/ ハメ;, :: ::|. だ ん
i|::ハ: : : : : : : : : : : 、ヘヘヘヘ 、 ヘヘヘヘヘ /: : : : : \,|. ろ な
|!l |: : : : : : : : :、: ::\ 、-―-, / : : :丶;,,;,:ミヽ う ら
丶: :ハ、lヽ: :ヽ: : ::\__ `~ " /: : ト; lヽ) ゝ
レ `| `、l`、>=ニ´ , _´ : :} ` /
,,、r"^~´"''''"t-`r、 _ -、 ´ヽノ \ノ / お ・
,;'~ _r-- 、__ ~f、_>'、_ | で 前 ・
f~ ,;" ~"t___ ミ、 ^'t | は ん ・
," ,~ ヾ~'-、__ ミ_ξ丶 | な 中 ・
;' ,イ .. ヽ_ ヾ、0ヽ丶 l /
( ;":: |: :: .. .`, ヾ 丶 ! \____/
;;;; :: 入:: :: :: l`ー-、 )l ヾ 丶
"~、ソ:: :い:: : \_ ノ , ヾ 丶
0514NAME IS NULL
2011/10/27(木) 21:47:25.59ID:???まさか延々とつぶやいていたのは状況を説明していたつもりだったのか・・・
0515NAME IS NULL
2011/10/27(木) 22:00:11.98ID:???0516NAME IS NULL
2011/10/27(木) 22:14:01.51ID:???0517NAME IS NULL
2011/10/28(金) 00:00:52.79ID:???0518NAME IS NULL
2011/10/28(金) 00:26:57.83ID:???SQLiteはどの環境でもすぐ使える手軽さだけで十分
中規模以下のアプリケーションにしか使わないし問題ない
0519NAME IS NULL
2011/10/28(金) 00:54:15.68ID:???大抵の疑問点は本家で解決するから
そんな物にも躓ける ID:VqqPO7vL がうらやましい
0520NAME IS NULL
2011/10/28(金) 08:31:43.42ID:rXEAeOdb主キー検索で問い合わせてるのに
マトモに返してくれない
遅延糞dbをどうやって使いこなせば良いんだ?w
裏技でもあるんか?w
0521NAME IS NULL
2011/10/28(金) 11:03:46.68ID:???覚えたての専門用語を縦に、詳しい人たちの中に割って入ろうとする馬鹿みたいで
ほほえましいな
0522NAME IS NULL
2011/10/28(金) 16:00:11.78ID:rXEAeOdb0523NAME IS NULL
2011/10/28(金) 17:37:40.70ID:???通常ありえないことだよな。ありがてぇありがてぇ。
0524NAME IS NULL
2011/10/28(金) 18:32:42.40ID:rXEAeOdbほぅ、その存在を知っているのかね君は
もちろん
糞dbには無い資格なのだよ
ちなみにP取ったら
バッチと賞状が貰えるの知ってたかね?
0525NAME IS NULL
2011/10/28(金) 18:33:31.48ID:rXEAeOdbついでに
嬉しくてクリアケースも買っちゃったw
商売上手なおらくるだよw
0526NAME IS NULL
2011/10/28(金) 19:38:31.96ID:???0527NAME IS NULL
2011/10/28(金) 19:40:55.91ID:rXEAeOdbお前らと素養が違うんだよ
底辺の諸君、どうだね?w
糞dbは楽しいかね?w
0528NAME IS NULL
2011/10/28(金) 20:03:31.14ID:???0529NAME IS NULL
2011/10/28(金) 20:06:14.12ID:rXEAeOdbここの馬鹿住民に
スーパーマンの俺が登場したのも何かの縁だ
糞dbの無力さと
信者の馬鹿さ加減を思い知るが良い
0530NAME IS NULL
2011/10/28(金) 20:12:23.99ID:???ありがとう。
0531NAME IS NULL
2011/10/28(金) 20:16:31.50ID:rXEAeOdbさて酒気ーでさえ糞遅いのならんとかならんかね?
催促の
インデックスなんだが
データ的にはこのインデックスで最適なんだがねぇ
データが重複が多いのなら、別のインデックスを考慮するが
ユニークなデータだからな
勿論他のDBではH2も高速だった
つまり結論は糞dbは劇主ということだ
五時変換は許せ
治すのメン土井w
おrくるのPより
0532NAME IS NULL
2011/10/28(金) 20:27:06.03ID:???0533NAME IS NULL
2011/10/28(金) 20:28:43.05ID:rXEAeOdb好きに解釈してくれ
0534NAME IS NULL
2011/10/28(金) 20:30:08.34ID:???0535NAME IS NULL
2011/10/28(金) 20:52:10.83ID:rXEAeOdb糞dbを使いながら
楽しいか?
全く使えんし使う気にも慣れん
歩優れ・マイ、いるんなdb使ってきたが
これほど糞dbははじめた
糞すぎるな信者も糞だ
0536NAME IS NULL
2011/10/28(金) 20:57:14.28ID:???0537NAME IS NULL
2011/10/28(金) 20:57:21.00ID:???アルコールが切れてませんか?
0538NAME IS NULL
2011/10/28(金) 21:01:26.39ID:rXEAeOdbさて糞db信者の諸君
そろそろ糞dbなんて
見切りつけていいかね?
馬鹿馬鹿しいよ
使う気になれんのだ
0539NAME IS NULL
2011/10/28(金) 21:09:49.89ID:???0540NAME IS NULL
2011/10/28(金) 21:20:30.30ID:rXEAeOdbそろそろ
こんな糞dbは見切りつけようと思う
だって糞なんだもん
主キーで問い合わせてこんなレスだよ
壊れてるんじゃね?設計段階からw
0541NAME IS NULL
2011/10/28(金) 21:58:49.37ID:???0542NAME IS NULL
2011/10/28(金) 22:10:14.30ID:rXEAeOdb残念だが
おらくるPtosite
もう・・・
ああ、なんちう糞dbなんだよ
主キーで検索かけてるのに
このザマですか?
糞dbすぎるんだが
0543NAME IS NULL
2011/10/28(金) 22:19:46.15ID:???厨房かも知れん
0544NAME IS NULL
2011/10/28(金) 22:25:27.15ID:???痛いを通り越して哀れみを感じる
0545NAME IS NULL
2011/10/28(金) 22:35:52.89ID:???0546NAME IS NULL
2011/10/28(金) 23:40:11.84ID:rXEAeOdb驚くなよ
おれがPだからと言って
そりゃマスタだからね
俺は君の、おまいらの一億倍のスキルもってんだよ
それでも糞dbには手を焼いてるけどね
0547NAME IS NULL
2011/10/28(金) 23:48:17.32ID:???きっと、君は俺の一億分の一くらいのスキルしか無いんだろうな。
0548NAME IS NULL
2011/10/28(金) 23:51:37.13ID:rXEAeOdb糞dbは知らんのだよぉ
おらくる様なら
どのインデックスで検索するとか
統計情報で分析するんだがねぇ
なんせ糞dbだから、たちが悪いんだよねぇ・・・
困ったなぁ
0549NAME IS NULL
2011/10/29(土) 00:11:18.97ID:???ttp://kzworks.at.webry.info/200809/article_67.html
レコードのサイズが大きくてOSのメモリを使い切ってしまうことがあったみたい。
今でもそうなのかは素人なのでよく分からない。
0550NAME IS NULL
2011/10/29(土) 00:26:06.60ID:???資源の上限の話だったら本家のドキュメントにちゃんと書いてあるよ。
http://www.sqlite.org/limits.html
0551NAME IS NULL
2011/10/29(土) 01:05:19.78ID:???こんな考えを持つゆとりさんが増えているようです
0552NAME IS NULL
2011/10/29(土) 02:42:41.90ID:???勉強になりました。感謝。
0553NAME IS NULL
2011/10/29(土) 10:23:39.42ID:bPqXvzbhs2とすぷりんぐマスターの俺
おらくるPの俺
でも糞dbだけは解析する気せんせん
時間の無駄だよ
こんな糞db
0554NAME IS NULL
2011/10/29(土) 10:35:43.25ID:???0555NAME IS NULL
2011/10/29(土) 11:44:55.06ID:bPqXvzbh糞db
きらいだぁ
0556NAME IS NULL
2011/10/29(土) 12:02:02.44ID:???プラチナ持ってる奴って、こんなに頭悪いわけないよね?
むかつく上司が持ってるけど仕事はできる。
尊敬する上司も持ってるけど、こっちも当然仕事できる人。
単なる荒らしと思わざるを得ないんだが、
こうゆう荒らしって、そんなに面白いもんなのか?純粋に不思議だわ。
0557NAME IS NULL
2011/10/29(土) 12:31:43.30ID:???0558NAME IS NULL
2011/10/29(土) 12:40:15.68ID:???毎日楽しみにしてます
これからももっと長文いっぱいお願いします
0559NAME IS NULL
2011/10/29(土) 14:05:14.46ID:bPqXvzbh。。。。
それ言うか世w
板ww
ぐさっときたぞぉ
0560NAME IS NULL
2011/10/29(土) 15:51:00.88ID:???0561NAME IS NULL
2011/10/29(土) 15:55:16.63ID:bPqXvzbh嘘いうりゆうないじゃん
0562NAME IS NULL
2011/10/29(土) 20:31:50.51ID:bPqXvzbh実はじゃヴぁとおらくるの達人なのdれすよ
ふぁふぁふぁ
なんでもきいてよ
0563NAME IS NULL
2011/10/30(日) 12:52:59.26ID:???毎日楽しみにしてるんだけど
0564NAME IS NULL
2011/10/30(日) 13:44:50.73ID:VHdVZn4y0565NAME IS NULL
2011/10/30(日) 16:21:06.53ID:???0566NAME IS NULL
2011/10/30(日) 16:22:12.35ID:???0567NAME IS NULL
2011/10/30(日) 16:24:26.73ID:VHdVZn4y糞db
全く使えん
どうして・・・
酒気ーでkんさくしてろのに
このザマかよ
糞すぎてつかうきなくしたわ
0568NAME IS NULL
2011/10/30(日) 16:34:47.08ID:???なんかに似てるよな〜と思ったらバイオの日記じゃんw
「やと ねつ ひいた も とてもかゆい 」
0569NAME IS NULL
2011/10/30(日) 16:37:46.97ID:VHdVZn4y使えないdb
誰が何とかしてくるのか
立ち尽くすような絶望の日歩
さぁ立ち上がろう、
でも糞dbのせいsで経ちあがっれないよぉ・・・
なんでこんなに糞なの?
なんで主きでアクセスsちえるのに治安するの?
誰か教えて
0570NAME IS NULL
2011/10/30(日) 16:37:53.65ID:???0571NAME IS NULL
2011/10/30(日) 17:07:01.85ID:???むしろ、これbotか?
0572NAME IS NULL
2011/10/30(日) 17:14:06.90ID:VHdVZn4y馬鹿って誰?
信者?それとも病気?W
0573NAME IS NULL
2011/10/30(日) 17:39:13.59ID:???0574NAME IS NULL
2011/10/30(日) 17:39:54.62ID:VHdVZn4yきもい
0575NAME IS NULL
2011/10/30(日) 18:51:13.21ID:???0576NAME IS NULL
2011/10/30(日) 19:28:21.90ID:VHdVZn4y0577NAME IS NULL
2011/10/30(日) 19:32:45.21ID:???0578NAME IS NULL
2011/10/30(日) 19:37:20.91ID:VHdVZn4yどうして阿呆なんだ?
こんな糞dbを後生大事にしてどーなるwww
0579NAME IS NULL
2011/10/30(日) 19:39:34.67ID:???すげぇな。高度すぎて分からなかったわ。
0580NAME IS NULL
2011/10/30(日) 19:57:28.37ID:???0581NAME IS NULL
2011/10/30(日) 20:02:27.39ID:VHdVZn4y素晴らしいdbですよ
本当に層思います
僕らの忍耐力を鍛えてくれる
いつ帰ってくるかもわからんほど
待たされる
そのいらいらを我慢しなきゅならん
そういう意味では最高の精神鍛錬のdbですよww
0582NAME IS NULL
2011/10/30(日) 20:03:21.75ID:VHdVZn4yこのdbは
僕らに我慢の大切さをおしえてくれましたwww
主キで問い合わせても
糞遅いこともあるんだ
だから我慢しなきゃ
そう教えてくれる最高のdbですよwww
0583NAME IS NULL
2011/10/30(日) 22:39:50.29ID:???0584NAME IS NULL
2011/10/30(日) 22:56:09.90ID:VHdVZn4y何でkんな糞使い続けなきゃならんの?
もう限界だわ
見切りつけていいかな?
我慢の限界だわ
0585NAME IS NULL
2011/10/30(日) 23:12:20.51ID:???0586NAME IS NULL
2011/10/30(日) 23:44:41.12ID:???0587NAME IS NULL
2011/10/31(月) 00:21:11.03ID:y87CNCpLしかし、主キーで検索かけてうのに
何で糞なんだろうな
遅延にもほどがあるんだが
いい加減にしないと
もう二度と使う気が起こらんよ
だってH2でさえ一瞬なんだが
0588NAME IS NULL
2011/10/31(月) 00:25:36.75ID:???0589NAME IS NULL
2011/10/31(月) 00:41:11.45ID:y87CNCpL糞dbなんて嫌いだからね
俺をNGにしたら
一日たりともスレが伸びてないだろw
俺に反応するスレもNGにしてるんお?
まぁ糞信者どもは阿呆だなw
0590NAME IS NULL
2011/10/31(月) 09:49:04.43ID:???0591NAME IS NULL
2011/10/31(月) 15:23:02.07ID:???0592NAME IS NULL
2011/10/31(月) 16:51:27.31ID:???0593NAME IS NULL
2011/10/31(月) 20:26:20.52ID:y87CNCpL経験もそれなりにある
ノウハウも持ってる
だが糞dbだけは使えませんな
提案できませんわ、こんな糞db
0594NAME IS NULL
2011/10/31(月) 22:07:28.73ID:???おい、何サボってんだよ。引っ張りだこなのはわかるが書き込み少なすぎだろ。
0595NAME IS NULL
2011/10/31(月) 22:41:30.19ID:???0596NAME IS NULL
2011/10/31(月) 23:26:46.46ID:???0597NAME IS NULL
2011/10/31(月) 23:44:20.87ID:y87CNCpL好きこそものの上手なれだ
勿論、金はかかったが
充分元が取れるよ
0598NAME IS NULL
2011/10/31(月) 23:44:49.82ID:y87CNCpL懐かしいなぁ
試験受けた
今は昔
しかし受験料高いんだよなぁw
0599NAME IS NULL
2011/10/31(月) 23:53:21.91ID:???0600NAME IS NULL
2011/10/31(月) 23:57:22.52ID:y87CNCpL良い会社だねぇ
俺は自費だったわ・・・
0601NAME IS NULL
2011/11/01(火) 18:31:08.64ID:???0602NAME IS NULL
2011/11/01(火) 22:06:08.72ID:???0603NAME IS NULL
2011/11/02(水) 07:01:08.55ID:???0604NAME IS NULL
2011/11/03(木) 01:09:02.98ID:???0605NAME IS NULL
2011/11/03(木) 14:41:37.76ID:???0606NAME IS NULL
2011/11/03(木) 23:56:22.55ID:???0607NAME IS NULL
2011/11/04(金) 22:19:03.81ID:???0608NAME IS NULL
2011/11/05(土) 00:35:56.19ID:???0609NAME IS NULL
2011/11/06(日) 21:42:13.03ID:???3.7.9
0610NAME IS NULL
2011/11/07(月) 00:10:54.99ID:???0611NAME IS NULL
2011/11/07(月) 05:17:22.84ID:???0612NAME IS NULL
2011/11/07(月) 21:42:02.89ID:???不便で高速なエクセル
0613NAME IS NULL
2011/11/07(月) 23:01:43.58ID:???iPhone3GSで大体0.05〜0.1秒かかっています。
これをせめて0.01秒くらいまでチューニングしたい。
create table TBL_A (
COL_A INTEGER NOT NULL
, COL_B INTEGER NOT NULL
, COL_C INTEGER NOT NULL
, COL_D INTEGER NOT NULL
, COL_E INTEGER NOT NULL
, COL_F INTEGER NOT NULL
);
create index IDX_A on TBL_A(COL_A, COL_C, COL_B, COL_D);
select COL_A, COL_B, COL_C, COL_D, COL_E
from TBL_A
where COL_A <= 200
and COL_B >= 100
and COL_C <= 4000
and COL_D >= 3000
;
explain で確認すると
6 OpenRead 0 49 0 9 00
7 OpenRead 1 1323 0 keyinfo(4,BINARY,BINARY) 00
とあるので、キー読みは出来ているのではないかと思うのですが、
そもそも読み方が良く理解出来ていないのかもしれません。
インデックスを COL_A, COL_B, COL_C, COL_D や COL_C, COL_D, COL_A, COL_B、
それぞれ1列ずつ4つ作ってみたりしてみましたが今より遅くなってしまいました。
あと、何か検討出来ることはあるかしら?
0614NAME IS NULL
2011/11/08(火) 00:08:51.44ID:???条件式の並べ替えかな。
結果が少なくなりそうな順序がわかれば少し高速化できるはず。
0615NAME IS NULL
2011/11/08(火) 00:10:18.32ID:???そんな都合のいい条件があれば、それを最初にするといい。
0616613
2011/11/08(火) 00:43:27.53ID:???COL_A〜COL_Dはそれぞれ均等に分布していて、条件の数字は可変なんです。
なので COL_D >= 3000 では確かに300件くらいになるかもしれないのですが、
他のタイミングでは COL_D >= 300 とかになってしまうので、あまり効果が無さそうです。
後だし情報で申し訳ないです。
やっぱり2万件ってのと範囲指定で複数条件ってのが厳しいのかなぁ。
0617NAME IS NULL
2011/11/08(火) 02:45:58.95ID:???まさかそれも分からずに0.01秒くらいにならないかなぁーとか言ってるわけじゃないよね
0618NAME IS NULL
2011/11/08(火) 03:21:48.58ID:???0.01秒くらいは普通に見込める。
ていうかiPhone3GSって書いてあんだし手元で試せるだろ。
0619NAME IS NULL
2011/11/08(火) 04:53:55.74ID:???0620NAME IS NULL
2011/11/08(火) 20:20:51.50ID:???0621NAME IS NULL
2011/11/09(水) 02:01:39.45ID:???0622NAME IS NULL
2011/11/09(水) 03:06:39.33ID:???てか、回答もしてやれよと思うわ
0623NAME IS NULL
2011/11/10(木) 02:28:33.49ID:soAweL/z0624NAME IS NULL
2011/11/10(木) 02:45:58.36ID:???0625NAME IS NULL
2011/11/11(金) 21:04:50.48ID:???0626NAME IS NULL
2011/11/13(日) 21:10:38.54ID:???仕様ですか?
0627NAME IS NULL
2011/11/13(日) 22:00:04.44ID:???0628NAME IS NULL
2011/11/13(日) 22:03:46.28ID:???Navicat for SQLiteでテーブルを開いた状態で入れました
どっちになるんでしょう
0629NAME IS NULL
2011/11/13(日) 22:10:09.08ID:???Navicatのサポートに聞け。
0630NAME IS NULL
2011/11/15(火) 08:31:49.33ID:bVKL53qp別スレッドでたまにCOMMITするとどうなりますか?
つまりメインで
BEGIN TRANSACTION
INSERT
INSERT
...
BEGIN TRANSACTION
INSERT
INSERT
...
をやっていて、
あるトランザクションでINSERTが出揃った時点で
別スレッドでCOMMITすると、次のトランザクションが(メインで)開始してしまいますが、
ロックされてINSERTできない、みたいなことになりますか?
0631NAME IS NULL
2011/11/15(火) 18:38:30.00ID:???0632NAME IS NULL
2011/11/15(火) 19:34:21.82ID:3Q3XMG+/処理a
BEGIN TRANSACTION tran2
処理b
COMMIT TRANSACTION tran2
COMMIT TRANSACTION tran1
↑こーゆー感じで実行すると、
COMMIT TRANSACTION tran2 の時点で処理aと処理bがCOMMITされちゃうんですが、
処理bだけCOMMITしたいときはどうすればいいんでしょうか??
0633NAME IS NULL
2011/11/16(水) 12:18:12.64ID:???0634NAME IS NULL
2011/11/16(水) 12:40:40.14ID:???http://www.2ch.net/accuse2.html
を見てください
0635NAME IS NULL
2011/11/16(水) 14:24:36.91ID:???begin;
savepoint tran2;
release tran2;
commit;
0636NAME IS NULL
2011/11/27(日) 01:31:12.61ID:???一応の保守。
0637NAME IS NULL
2011/11/28(月) 03:26:17.05ID:c+RTLTZb0638NAME IS NULL
2011/11/29(火) 06:03:53.66ID:PoYxGkxUデータベースが一つのファイルで構成されている関係上、性能が劣化しやすいんです。
ここら辺はベンチとればすぐわかります。
プラットフォームの性能で変わるので一概に言えないのですが、個人的に10GBを
一つの目安としています。
64ビットのOSでは制限が緩くなる可能性があります。
ファイルサイズとメモリーの関係について文書が用意されていたはずです。
BLOBに写真を突っ込むような使い方をする場合、設計をよく考えなければなりません。
0639NAME IS NULL
2011/11/29(火) 09:11:36.55ID:???0640NAME IS NULL
2011/11/29(火) 20:41:37.76ID:???SQL文はどのように書けば良いのでしょうか?
どなたかアドバイスを頂けると助かります。
よろしくお願いいたします。
0641NAME IS NULL
2011/11/29(火) 20:50:37.60ID:???0642NAME IS NULL
2011/11/29(火) 22:21:28.78ID:???はい、そうです。
0643NAME IS NULL
2011/11/29(火) 23:12:53.22ID:???SQLiteは改行を含む文字列がTEXT型フィールドに入れられるか、という質問?
→だとしたらYES。普通のinsert文でOK。
TEXT型フィールドに改行を含んだ文字列を入れたらエラーになったが、どうすればいいか、という質問?
→だとしたら問題のSQL文を書くこと。
SQLiteに限らず、SQL文全般の質問
→だとしたらスレ違い。
0644NAME IS NULL
2011/11/30(水) 16:53:31.12ID:???0645NAME IS NULL
2011/11/30(水) 19:56:20.49ID:???0646NAME IS NULL
2011/11/30(水) 20:07:00.64ID:???0647NAME IS NULL
2011/11/30(水) 21:27:01.26ID:???0648647
2011/11/30(水) 21:32:13.02ID:???0649NAME IS NULL
2011/11/30(水) 23:11:57.74ID:???>>644
そうそのコマンドラインツールでの話です(^_^;)
コマンドラインでテキストを挿入する際、
改行コードを入れるにはどうするのでしょうか?
0651NAME IS NULL
2011/12/01(木) 00:10:10.20ID:???普通に改行すれば改行コードごと入るけど馬鹿なの?
0652NAME IS NULL
2011/12/01(木) 00:28:19.05ID:???ありがとう
正に馬鹿でした
0653NAME IS NULL
2011/12/02(金) 02:48:33.94ID:???あるテーブルのある列を集めて別のテーブル(ビュー)を作るのがリレーショナルデータベースだと分かりました。
では、そのビュー(テーブル)自体を一つのレコードとして集めたテーブルを作るのはリレーショナルデータベース
ではどうするのでしょうか?
例えば、十月売上品テーブルを作るのにメーカーテーブルや色テーブルから列を集めたのですが、
その売上品テーブル自体を一レコードとする年間売り上げ品テーブルを作るには
どうしたら良いのでしょうか?
0654NAME IS NULL
2011/12/02(金) 03:07:08.58ID:???0655NAME IS NULL
2011/12/02(金) 22:07:59.97ID:???検索が非常に遅くなっています
これをはやくする方法はないでしょうか
create table dictionary(spell text primary key, content text);
select * from dictionary where spell like 'run%'
0656647
2011/12/02(金) 22:24:04.54ID:???通常は、Like演算子を使って検索するが、この方法で結果を得た場合にデータ量によっては、数分程度の検索時間になることがある。
http://blog.livedoor.jp/akf0/archives/51005817.html
0657NAME IS NULL
2011/12/03(土) 00:51:00.50ID:???ここはSQLiteのスレであって、SQLの文法相談所ではない。
SQL質疑応答スレ 12問目
http://hibari.2ch.net/test/read.cgi/db/1316769778/
こっちへ。
0658NAME IS NULL
2011/12/03(土) 01:26:01.33ID:???それ SQL Server の記事みたいだけど SQLite でも使えんの?
0659NAME IS NULL
2011/12/03(土) 01:56:11.79ID:???http://blog.mwsoft.jp/article/34911345.html
SQLiteで全文検索 - DiaryException
http://d.hatena.ne.jp/LaclefYoshi/20110604/1307175819
0660NAME IS NULL
2011/12/03(土) 09:35:35.30ID:???ありがとうわかった気がします。
0661NAME IS NULL
2011/12/03(土) 18:27:36.55ID:???おもしろいな
0662NAME IS NULL
2011/12/12(月) 12:58:12.11ID:yToQ1TQG0663NAME IS NULL
2011/12/13(火) 02:38:16.61ID:???0664NAME IS NULL
2011/12/23(金) 23:48:27.53ID:???具体的には壊れたDBをdumpして、DB新しく作り直しています。
殆どデータは修復出来ましたが、データの一部が消失しているようで
、なんとか修復したいのですが、何か良い方法はありませんでしょうか?
よろしくお願いします。
0665NAME IS NULL
2011/12/24(土) 01:11:55.96ID:???0666NAME IS NULL
2011/12/24(土) 05:02:45.35ID:???> データの一部が消失しているようで
何をもってそう判断したのか知らないけど、"消失している"なら修復できないだろ。
SQLiteは魔法ではありません。
0667NAME IS NULL
2011/12/24(土) 14:38:02.19ID:???了解です。
dumpして修復できない場合は、もう無理と言うことですね。
ありがとう御座いました。
0668NAME IS NULL
2011/12/24(土) 15:17:56.92ID:???間違えて(またはバグで)レコードを消したことを指してる気がしなくもない
0669NAME IS NULL
2011/12/25(日) 13:49:28.95ID:???0670NAME IS NULL
2011/12/25(日) 14:10:56.94ID:???androidアプリを作っているんですが、sqliteを使ってデータを保存しています。
複数のスレッドで排他制御せずに同時にアクセスすると、dbが壊れる事があるようです。
0671NAME IS NULL
2011/12/25(日) 15:20:33.27ID:???sqliteは排他制御してても壊れるから心配するな
0672NAME IS NULL
2011/12/25(日) 16:15:48.10ID:???排他制御してても壊れるんですか?
それはどんな状況で発生するのかな。
0673NAME IS NULL
2011/12/25(日) 16:33:13.03ID:???0674NAME IS NULL
2011/12/25(日) 16:38:49.00ID:???0675NAME IS NULL
2011/12/25(日) 17:16:56.22ID:???結構大丈夫
0676NAME IS NULL
2011/12/25(日) 17:37:12.10ID:???一セッション毎のバックアップは必須だな。
0677NAME IS NULL
2011/12/25(日) 18:08:11.77ID:???http://www.sqlite.org/testing.html#crashtesting
と言うか、そんなのタイミング次第。
SQLiteだって結構大丈夫だし、他の組み込みDBだって壊れるときは壊れる。
0678NAME IS NULL
2011/12/25(日) 19:32:59.48ID:???0679NAME IS NULL
2011/12/25(日) 21:57:10.72ID:???普通はログを・・・
0680NAME IS NULL
2011/12/25(日) 22:21:18.18ID:???0681NAME IS NULL
2011/12/25(日) 23:32:53.22ID:???0682NAME IS NULL
2011/12/26(月) 02:59:50.20ID:???>>679の言うようなログは出せないよ
0683NAME IS NULL
2012/01/04(水) 16:29:30.35ID:???ある程度大きいサイズだと致命的エラーが出ます
あるとしたら何バイトでしょうか
0684NAME IS NULL
2012/01/04(水) 16:43:14.28ID:???あるとしたら2G
0685NAME IS NULL
2012/01/04(水) 17:09:58.73ID:???700MB程度のテーブルもひらけないですね
メモリの使用状況見ると、70MBのテーブル開くのにも210MBくらいメモリ食っていたので
単純にメモリ不足で開けなかったっぽいです
まさか3倍も使うとは思ってませんでしたorz
Pup's Sqliteでも同じくらいメモリ食って開けないので
自分の環境向けにテーブルを小分けにするしかなさそうです
0686NAME IS NULL
2012/01/04(水) 18:16:51.73ID:???0687NAME IS NULL
2012/01/04(水) 18:37:42.85ID:???上限の話は公式ドキュメントに書いてある
http://sqlite.org/limits.html
と言うか「テーブルをひらく」って、何をしようとしているんだろう…。
0688NAME IS NULL
2012/01/04(水) 19:16:55.29ID:???全件表示しようとするんじゃないだろうか。
いずれにしても、使うツールのためにスキーマ変更するというのはバカらしいが。
0689NAME IS NULL
2012/01/04(水) 20:34:59.14ID:???非同期型にアプリ側で実装されてると
一旦メモリに全部読み込むんだが
UTF16で文字列はロードするので
DBファイルがUTF8だったとき
ANSI文字がまず2倍
あとダーティフラグなんかもつくんで
三倍くらいいってもおかしくない気がする
0690NAME IS NULL
2012/01/07(土) 14:42:12.93ID:???0691NAME IS NULL
2012/01/07(土) 14:59:56.55ID:???select * from foo where bar like '%;%';
0692NAME IS NULL
2012/01/07(土) 15:59:48.91ID:???すいません
なんか勘違いしていたみたいで普通に出来ました
0693NAME IS NULL
2012/01/10(火) 11:55:47.38ID:???0694NAME IS NULL
2012/01/10(火) 14:52:14.64ID:???0695NAME IS NULL
2012/01/11(水) 04:47:50.76ID:???0696NAME IS NULL
2012/01/11(水) 09:34:01.86ID:???0697NAME IS NULL
2012/01/11(水) 12:12:24.06ID:???0698NAME IS NULL
2012/01/11(水) 12:33:00.09ID:???1000万件ぐらいならやったことあるけど。
AutoCommit さえオフにすれば全然おk
0699NAME IS NULL
2012/01/19(木) 00:50:40.88ID:???0700NAME IS NULL
2012/01/30(月) 02:50:35.74ID:???問題ないでしょうか。
たぶん問題ないと思いますが、念のため聞いてみました。
またマルチプロセスで同時にデータベースファイルを開く時に、なにか気をつける点があればおしえてください。
0701NAME IS NULL
2012/01/30(月) 18:46:25.04ID:???なにが「問題ない」のか、その質問だけじゃ読み取れないので答えようがない。
0702NAME IS NULL
2012/01/30(月) 22:10:42.90ID:???lockingはファイルロック=DBロックになるので、用途によっては使いものにならない。
素直にPostgreSQLやMySQLみたいなものを使ったほうが幸せになりやすい。
0703NAME IS NULL
2012/01/31(火) 00:50:36.08ID:???マルチプロセスで同じデータファイルを操作しても、データベースが壊れたり不整合が発生しないかどうかという意味です。
>>702
それはロックの粒度が荒いので、性能がでないという意味でしょうか。
性能はひとまずおいておくとして、今は不整合が発生したりファイルが壊れたりしないかどうか、教えて下さい。
0704NAME IS NULL
2012/01/31(火) 08:14:01.44ID:???親切なことにw SELECT発行するだけでもDB全体がロックされる
読み込みだけの操作でもCOMMITするまでロックしっ放しの親切設計だ
0705NAME IS NULL
2012/01/31(火) 08:23:06.06ID:???0706NAME IS NULL
2012/01/31(火) 12:50:18.58ID:???1行目には賛同するが2行目には同意できない。
んなもん「用途による」としか。
0707NAME IS NULL
2012/01/31(火) 20:18:34.30ID:???>>700がCGIで使う場合って書いているでそ。そんな用途では「素直にPostgreSQLやMySQLみたいな
ものを使ったほうが幸せになりやすい」のは確かでそ。
0708NAME IS NULL
2012/01/31(火) 22:52:22.23ID:???全ての Web がガンガンアクセスされてるわけじゃないでしょ?
うちの自宅サーバーみたいに1リクエスト/日かも知れないよ。
それでもアクセスが重なる可能性は 0 じゃないから、
ロックしててもいいから不整合は避けたいって言うことなら、
簡単な SQLite の方がいいと思うけどね。
0709NAME IS NULL
2012/02/01(水) 00:38:39.02ID:???>別プロセスだろうがちゃんとロックされるから安心しな
了解しました。その答えが欲しかった。ありがとうございます。
>親切なことにw SELECT発行するだけでもDB全体がロックされる
>読み込みだけの操作でもCOMMITするまでロックしっ放しの親切設計だ
たしかに同時接続が多い場合は困るでしょうね。
>>708
>それでもアクセスが重なる可能性は 0 じゃないから、
>ロックしててもいいから不整合は避けたい
まさにこの通りです。703に書いたように、性能はひとまず置いてて構わないので、
データの破損や不整合は何としても避けたいという事情です。
0710NAME IS NULL
2012/02/04(土) 14:07:58.35ID:???0711NAME IS NULL
2012/02/04(土) 20:16:45.18ID:???0712NAME IS NULL
2012/02/05(日) 01:18:38.75ID:???MovableTypeって基本的にhtmlを静的生成だし、用途的に書き込みアクセスは
極端に少ないから、あんまり参考にはならないと思う。
0713NAME IS NULL
2012/02/06(月) 01:35:56.12ID:???0714NAME IS NULL
2012/02/27(月) 21:29:18.07ID:???cseで化けなかった。
0715NAME IS NULL
2012/03/07(水) 01:07:14.99ID:dQiolw7Dテーブルは編集できるけど。
0716NAME IS NULL
2012/03/07(水) 04:04:07.34ID:???0717NAME IS NULL
2012/03/07(水) 04:08:20.86ID:???0718NAME IS NULL
2012/03/07(水) 09:57:17.44ID:???0719NAME IS NULL
2012/03/07(水) 13:36:01.00ID:???0720NAME IS NULL
2012/03/07(水) 14:52:09.42ID:???そもそもSQLiteにそのコマンドがないんですね・・・それは思いつかなかったw
DROPしてCREATEし直すしかないんですね。
0721NAME IS NULL
2012/03/07(水) 19:23:20.61ID:???0722NAME IS NULL
2012/03/07(水) 22:01:50.52ID:???お騒がせしました
0723NAME IS NULL
2012/03/12(月) 19:52:16.31ID:???0724NAME IS NULL
2012/03/12(月) 20:46:07.43ID:???C#のライブラリはJavaでは使えません
0725NAME IS NULL
2012/03/13(火) 22:45:25.52ID:???full-managedなら、monodroidで動くかもね。
SQLiteのは、ネイティブとの混合だから無理そう。
0726NAME IS NULL
2012/03/19(月) 17:08:37.21ID:???テーブル名.カラム名 AS 新カラム名
をちゃんと定義しないとダメなの?(カラム名と新カラム名が同じでも)
PupSQLiteとかWindowsのPHP(pdo)だとエラーにならないんだけど
レン鯖のPHPからだと「そんなカラムねーよ!」っていうエラーになる(´д`;)
0727NAME IS NULL
2012/03/19(月) 18:41:11.37ID:???0728NAME IS NULL
2012/03/19(月) 18:48:41.70ID:???あ、すんません。んと、何の情報晒せばいいのかよくわかってないけど
レン鯖はこんなかんじ↓
PHP Version 5.2.17
pdo_sqlite
PDO Driver for SQLite 3.x enabled
PECL Module version (bundled) 1.0.1 $Id: pdo_sqlite.c 293036 2010-01-03 09:23:27Z sebastian $
SQLite Library 3.3.7
0729NAME IS NULL
2012/03/19(月) 20:49:14.25ID:???0730NAME IS NULL
2012/03/19(月) 21:36:01.52ID:???同じようなエラーの人いました
0731NAME IS NULL
2012/03/20(火) 16:53:44.07ID:???0732NAME IS NULL
2012/03/20(火) 17:49:47.26ID:???REAL型? 普通に使えてるけどなぁ。プログラムの中で変なキャストしてるとか・・・
0733NAME IS NULL
2012/03/20(火) 18:01:25.14ID:???REALも試したけれど、コールバックのchar **columnValuesにマイナスとか付いたのが返される。
ORDER BYで降順にならない
0734NAME IS NULL
2012/03/20(火) 18:06:30.41ID:???再現する最小のソースでいいから出してみ
0735NAME IS NULL
2012/03/20(火) 20:43:29.77ID:???事故解決できました。
あまりにも恥ずかしいミスをしてた、、、orz
0736NAME IS NULL
2012/03/20(火) 20:47:06.10ID:???0737NAME IS NULL
2012/03/20(火) 21:24:10.36ID:???//#define INSERT_TABLE "INSERT INTO average (id, numbaer) values (%d, %d)" <-- ミスです
#define INSERT_TABLE "INSERT INTO average (id, numbaer) values (%d, %f)"
0738NAME IS NULL
2012/03/21(水) 00:36:34.18ID:???0739NAME IS NULL
2012/03/21(水) 06:08:31.62ID:???0740NAME IS NULL
2012/03/21(水) 19:48:56.37ID:Ny2BPNOP●高校 ×学年 ■組 みたいなのを主キーで表すと1となるんでしょうか?
では外部キーとは何ですか?
よくわかりません
0741NAME IS NULL
2012/03/21(水) 19:53:03.95ID:Ny2BPNOP0742NAME IS NULL
2012/03/21(水) 20:11:00.40ID:???マルチしすぎ
0743NAME IS NULL
2012/03/21(水) 22:41:59.94ID:???0744NAME IS NULL
2012/03/21(水) 22:45:20.32ID:???0745NAME IS NULL
2012/03/21(水) 23:02:54.74ID:???0746NAME IS NULL
2012/03/22(木) 00:53:57.00ID:???よし分かった。わかりやすく俺に御教示してくれ
0747NAME IS NULL
2012/03/22(木) 02:59:10.59ID:???0748NAME IS NULL
2012/03/22(木) 11:28:21.38ID:???普段はそんな揚げ足取りはしないよ。
0749NAME IS NULL
2012/03/22(木) 12:22:07.14ID:???0750NAME IS NULL
2012/03/22(木) 12:38:24.94ID:???そういうのするのダサい場所だよな
0751NAME IS NULL
2012/03/22(木) 23:48:51.79ID:???教授でも意味は通じるよ。
よりずうずうしいけど。
0752NAME IS NULL
2012/03/29(木) 11:56:13.72ID:???0753NAME IS NULL
2012/03/29(木) 16:23:33.66ID:bq4KjbwIおれはつかっていない。
0754NAME IS NULL
2012/03/31(土) 15:45:35.42ID:???使ってないっす
CREATE TABLE table (a INTEGER UNIQUE, b INTEGER) したデータベースから
SELECT * FROM table WHERE a = %d した時に b の降順(ORDER BY b DESC)で並べ替えた順番を知る方法ってありますか
0755NAME IS NULL
2012/03/31(土) 15:48:03.02ID:???そこからSELECTしてます。
0756NAME IS NULL
2012/04/01(日) 00:38:59.25ID:???0757NAME IS NULL
2012/04/02(月) 03:51:03.25ID:???じゃだめなん?
0758NAME IS NULL
2012/04/02(月) 21:49:00.27ID:???そーなんだけど
見つかった a が b の並び順の何番目になっているかってのが知りたいのです。
0759NAME IS NULL
2012/04/02(月) 22:15:03.50ID:???select a, (select count(*) from table as t2 where t2.b > t1.b) from table as t1 where a = %d
0760NAME IS NULL
2012/04/03(火) 00:06:29.86ID:???ありがとです。
で、つらつらと眺めてみたけどなかなか馴染みにくいわぁ >SQL
0761NAME IS NULL
2012/04/03(火) 05:24:22.72ID:???じゃないかな
0762NAME IS NULL
2012/04/04(水) 14:29:03.66ID:???0763754
2012/04/14(土) 20:46:31.36ID:???プログラムの方向転換があって今は必要なくなってしまいました。
時間があれば試してみます。m(_ _)m
0764NAME IS NULL
2012/04/14(土) 22:47:36.25ID:???0765NAME IS NULL
2012/04/16(月) 18:02:34.46ID:???0766NAME IS NULL
2012/04/18(水) 01:20:44.73ID:???INSERT INTO TABLE_NAME1 ('COLUMN_A', 'COLUMN_B')
VALUES
(VALUE_A11, VALUE_B12),
(VALUE_A21, VALUE_B22);
0767NAME IS NULL
2012/04/18(水) 01:30:07.57ID:???0768NAME IS NULL
2012/04/18(水) 02:28:58.65ID:???0769NAME IS NULL
2012/04/18(水) 02:51:21.72ID:???対応したのはつい最近だね
http://www.sqlite.org/releaselog/3_7_11.html
> SQLite Release 3.7.11 On 2012 March 20 (3.7.11)
> Enhance the INSERT syntax to allow multiple rows to be inserted via the VALUES clause.
0770NAME IS NULL
2012/04/18(水) 03:33:20.93ID:???てっきりBEGIN〜COMMITで囲めばいいと思ってました
preparedってこういう時に使うんですね。勉強になります
>>769
むぅ、最近だとまだ共用サーバーでは使えないですね > <
ありがとうこざいましたm(__)m
0771NAME IS NULL
2012/04/20(金) 13:00:59.66ID:???0772NAME IS NULL
2012/04/28(土) 21:33:14.40ID:???当然あるものと思いたいけど、解説サイトの演算子一覧のどこにも載っていません
http://blogs.yahoo.co.jp/sleepy_1005/792418.html
http://www.dbonline.jp/sqlite/select/index11.html
0773NAME IS NULL
2012/04/28(土) 21:40:31.26ID:???0774NAME IS NULL
2012/04/28(土) 21:53:12.43ID:???まさかまさか無いのかと思ってどうやってand or not組み合わせればいいのか頭をひねってました。
ありがとうございます
0775NAME IS NULL
2012/04/29(日) 10:55:32.58ID:???質問する前に試せ。
手間じゃないんだから。
0776NAME IS NULL
2012/04/29(日) 14:54:13.86ID:???有効かどうかだけなら、>>775 の言うように試せばいいし、
きちんと知りたいなら、ドキュメントを見るのが吉かと。
・where に続いて expr を書く。
http://www.sqlite.org/lang_select.html
・expr は、'(' expr ')' と書ける。
http://www.sqlite.org/lang_expr.html
0777NAME IS NULL
2012/04/29(日) 18:37:09.02ID:???0778NAME IS NULL
2012/04/29(日) 18:44:47.07ID:???0779NAME IS NULL
2012/04/29(日) 18:51:28.85ID:???0780NAME IS NULL
2012/04/30(月) 09:00:30.51ID:???0781NAME IS NULL
2012/04/30(月) 09:49:47.21ID:???林檎のもとに見えしとき...
0782NAME IS NULL
2012/04/30(月) 09:53:39.73ID:???0783NAME IS NULL
2012/04/30(月) 09:54:02.42ID:???その檸檬の冷たさはたとへやうもなく良かった。
0784NAME IS NULL
2012/05/15(火) 06:20:52.64ID:???したときに改行が出力されてしまうのですが、何も出力しない方法はありますか?
具体的にはコマンドラインから
> sqlite3 -list aaa.db 'select load_extension("xxx.so"); select * from tbl;'
という使い方をしています。
0785NAME IS NULL
2012/05/16(水) 23:42:58.84ID:???0786NAME IS NULL
2012/05/17(木) 00:22:54.83ID:???改行を消しちゃえばよくね?
0787NAME IS NULL
2012/05/17(木) 07:56:08.56ID:???シェルの標準IOでそういうコマンドがあるんですか?
¥rのことならダメです。
見た目の問題ではないので。
0788NAME IS NULL
2012/05/17(木) 18:47:47.82ID:???そういうコマンドはあるよ
0789NAME IS NULL
2012/05/17(木) 21:46:16.41ID:???0790NAME IS NULL
2012/05/18(金) 02:24:14.53ID:???その出力を使う別のプログラムが居て、空白行を期待していない、というだけ。
>>788
外部でsed挟むか・・・
SQLite内ではムリ、ということでよろしいですか?
0791NAME IS NULL
2012/05/18(金) 20:47:20.64ID:???0792NAME IS NULL
2012/05/18(金) 22:03:34.60ID:???0793NAME IS NULL
2012/05/18(金) 23:45:21.80ID:???応用まで対応できるか分からないけど、SQLのリファレンスの本買ってきて、
SQLiteってDBをいじると感覚的にSQLとDBが分かると思うよ。
SQLiteの参考サイト多いし、フリーのツールも多くある。
0794NAME IS NULL
2012/05/19(土) 08:12:35.53ID:???sqlの強化を少しして欲しいかな
cteとwindow関数が使えるようになってくれたら申し分ない。
0795NAME IS NULL
2012/05/21(月) 15:06:54.22ID:???0796NAME IS NULL
2012/05/21(月) 19:00:04.18ID:???標準化されてて(SQL99)主要DBが実装してる機能を
嫌いだからって実装しないのは違うと思うぞ。
・実装済み
Oracle
DB2
SQLServer
Sybase
PostgreSQL
Firebird
window関数は正直sqliteクラスじゃ必要ないと思うが
withは便利だと思う。
0797NAME IS NULL
2012/06/08(金) 22:42:10.65ID:XSSaqzr4SELECT * FROM sqlite_master WHERE type='table' order by name
で取得できるテーブル名が1つです。
別アプリでファイルを見るとちゃんとテーブルは出来ているのですが、複数テーブルがある
場合にテーブル名を取得する方法ってまた別にあるんでしょうか?
0798NAME IS NULL
2012/06/09(土) 01:59:04.00ID:???一行しかとってきてないってオチ
コマンドラインから試してみな
0799NAME IS NULL
2012/06/09(土) 04:23:00.72ID:???0800797
2012/06/09(土) 10:19:10.60ID:ucCrRTp2こんな感じです。
$conn = new PDO("sqlite:" . $dir . "" . $file);
$sql = "SELECT * FROM sqlite_master WHERE type='table' order by name ";
$stmt = $conn->prepare($sql);
$stmt->execute();
while($row = $stmt->fetch())
{
echo $row['tbl_name'];
}
コマンドラインで出来ればいいのですが、制約多くてコマンドラインが試せない環境だったもので。
0801NAME IS NULL
2012/06/09(土) 11:44:36.20ID:???0802NAME IS NULL
2012/06/09(土) 12:08:46.25ID:???0803NAME IS NULL
2012/06/11(月) 21:18:59.60ID:???0804NAME IS NULL
2012/06/12(火) 18:06:25.53ID:WjdPxXde$result = $connect->prepare($sql);
$result->execute();
$id = $result->{mysql_insertid};
var_dump( $id );
結果はNULLなんですがデータは正常に追加されています。
MySQLしか使ったことがないので、この使い方自体があっているかどうかが不明なんですが
間違いあればおしえてもらえないでしょうか。
0805NAME IS NULL
2012/06/12(火) 19:16:42.80ID:???何の釣りか知らないけど質問する時は実行環境も書くこと。その質問じゃ何言語かすら分からん。
で、貴方が書いたコードには「mysql_insertid」とかいう、MySQLを連想させるワードが入っているけど、これは正しいの?
0806NAME IS NULL
2012/06/12(火) 20:00:34.17ID:???0807sage
2012/06/12(火) 21:51:06.19ID:???$sql = "select テーブル名 last_insert_rowid";
だったかな。今sqliteの環境ないからわからんけど間違ってたらこれでもかってくらい激しい突っ込みあると思う
0808NAME IS NULL
2012/06/12(火) 22:36:40.61ID:???と言うか環境云々の前に>>807はSQL構文的にアウトっぽい…。
既出かもしれないけど、SQLiteは"integer primary key"な列がある場合には、
それをrowidとして扱い、それ以外なら別にrowidが振られる、という仕様だったと思うので、
前者なら上の関数で返るのは最後に挿入したプライマリキーの値になるはず。
# その場合に"mysql_insertid"ってのと同等機能になるのかは知らんよ!
詳細は公式ドキュメントを。
0809NAME IS NULL
2012/06/13(水) 22:47:57.82ID:???整数値3列 x 1億行程度のインデックス生成になぜ3日もかかる
0810NAME IS NULL
2012/06/13(水) 23:42:04.03ID:???独り言ならチラシの裏に書くこと。
0811NAME IS NULL
2012/06/13(水) 23:45:53.17ID:???0812NAME IS NULL
2012/06/14(木) 10:24:44.33ID:???値に偏りがある場合は特に酷い。
0813NAME IS NULL
2012/06/14(木) 22:27:38.62ID:???0814NAME IS NULL
2012/06/14(木) 23:55:58.19ID:???0815NAME IS NULL
2012/06/15(金) 00:03:06.32ID:???0816sage
2012/06/20(水) 17:05:03.14ID:???特に作成を指示するようなコマンドは出していません。
これは何か作成される条件があるんでしょうか。
環境はSQLite3 / PHP5.3 / CentOS6.2
0817NAME IS NULL
2012/06/20(水) 17:19:47.34ID:???0818NAME IS NULL
2012/06/20(水) 18:00:32.58ID:???0820NAME IS NULL
2012/06/20(水) 20:55:26.15ID:???>>817
たまにじゃない。
0821NAME IS NULL
2012/06/20(水) 21:53:54.09ID:???せっかくレスくれた>>817をなぜ読まないの?
0822NAME IS NULL
2012/06/21(木) 00:39:16.89ID:???0823NAME IS NULL
2012/06/21(木) 01:10:22.62ID:???トランザクション有効化した場合にコミットするまでの間作られる、というようなことがたぶん>>817のリンク先に書いてある
0824NAME IS NULL
2012/06/21(木) 01:29:50.84ID:???ゴミが残ったままのせいで新たにトランザクション開始出来なくなるっていう
0825NAME IS NULL
2012/06/21(木) 02:26:26.12ID:???なるべく自前でやるようにしたほうがいい
0826NAME IS NULL
2012/06/21(木) 07:24:30.44ID:???0827sage
2012/06/23(土) 10:23:32.06ID:???それぞれ単体ではちゃんとできるんですが、1個の接続でやろうとすると失敗します。
selectで検索した結果をinsertしたりupdateしたいのですが。
0828NAME IS NULL
2012/06/23(土) 12:05:01.04ID:???質問する時は人に分かるように書くこと。
1行目 → 「ひとつの接続」の意味が分からない。
2行目 → 「それぞれ単体」「1個の接続」の意味が分からない。「ちゃんとできる」「失敗します」がそれぞれどういう状態なのかも分からない。
3行目 → 普通にできる。
0829NAME IS NULL
2012/06/24(日) 10:00:13.15ID:ECwSEUIK「一個の接続」
要は「一回データベースを開いてそのコネクション内で複数のコマンドを動かすことはてきるのか」ということではないかと。
「それぞれ単体」
操作毎にコネクションを張り直す、ということかと。
つまりインサートのためにコネクションを張り、完了したらコネクションを切り、
セレクトのためにまたコネクションを張る、とか。
0830NAME IS NULL
2012/06/24(日) 12:24:01.48ID:???0831NAME IS NULL
2012/06/24(日) 16:05:37.46ID:???0832NAME IS NULL
2012/06/24(日) 16:26:23.23ID:???誰も答えようとしないんだろ。
要するに、答えが欲しけりゃ「質問する時は人に分かるように書くこと。」を実践しろってこった。
それぐらいエスパーでなくてもわかるだろ。
0833NAME IS NULL
2012/06/24(日) 20:01:10.60ID:???普通にできるから、できないならお前のプログラムが悪い
>>828
読解力なさすぎ
0834sage
2012/06/25(月) 11:23:26.69ID:???0835NAME IS NULL
2012/06/25(月) 14:09:07.80ID:???0836sage
2012/06/25(月) 17:23:16.30ID:???selectについて質問させてください。
部分一致検索をしたいのですが対象となるワードを%で囲むと一致しなくなります。
SQLiteでの検索では%による曖昧検索は使えないのでしょうか。
0837NAME IS NULL
2012/06/25(月) 18:16:46.86ID:???君ができないからって「できないのでしょうか?」って言い方は
sqliteを見下しているように聞こえる
あなたの場合、環境を書いた上で
「曖昧検索のやり方がわかりません。どのようにするのでしょうか?」が正しい
0838NAME IS NULL
2012/06/25(月) 18:25:29.49ID:???ftsでのmatch検索?
もわからん。。
ていうか環境はおろか、クエリも書かないってどないじゃ。
0839NAME IS NULL
2012/06/25(月) 18:33:09.07ID:???0840NAME IS NULL
2012/06/25(月) 19:13:40.45ID:???公式は英語だし・・・
なんか視覚的にわかるツールとかないでしょうか?
難しい情報はみてもわからないので
そのクエリが早かったか遅かったかだけを知りたいので
何msで結果が返ってきたとかそういう単純な情報がほしいです
0841NAME IS NULL
2012/06/25(月) 19:35:32.49ID:???そのクエリが何msで返ってきたかを計測すればいいと思うよ。
難しい情報を見て分からないなら、見て分かるようになるまで勉強しましょう。
あと、英語だから分かりませんは、たぶん通用しないよ。
0842NAME IS NULL
2012/06/25(月) 19:43:57.70ID:???.timer on
実際の時間となると>>841だなぁ。
アプリで計測するか、シェルでtimeコマンド使うとか。
ただ、explainの結果くらいわかるようにならないと、
実行時間だけで見てると、クエリの潜在的な問題を見落とすことになるぞ。
ていうか、
意図したように実行させるクエリが書ければ、
explainの結果も自然と読めるようになると思う。
現在のRDB製品ではどうしても物理パスを意識しなければならないという、
SQL仕様自体の欠点だな。
0843NAME IS NULL
2012/06/25(月) 19:54:30.32ID:???ツールの類はないってことですね?
アプリケーションじゃ純粋な実行時間はわかりませんが
どちらが早いかの目安にはなるのでそれでいこうと思います
ていうかすごいですね
みんな読めるのが普通なのか・・・
僕にはアセンブラコードと変わらないよorz
0844NAME IS NULL
2012/06/25(月) 19:56:59.86ID:???英語きついお;;ってことは、そういう立場でもなさそうだし。
自分がやるしかないけど、勉強中なんだってことなら、ほかに優先すべき学習内容があるならそちらを優先してもいいと思う。
0845NAME IS NULL
2012/06/25(月) 20:00:09.60ID:???英語は俺も苦手だが、アメリカ人が作ってアメリカ人が保守しているものを使おうとしているんだから読む覚悟は必要。
0846NAME IS NULL
2012/06/25(月) 20:12:49.84ID:???0847842
2012/06/25(月) 20:37:38.20ID:???explainててっきりexplain query planのことだと思ってたけど(これくらいなら誰でも分かりそうなのになぁと)
そっちのexplainのほうか。
確かに内部のopcodeとかここまではそうそう必要なさそうな気がする。
0848NAME IS NULL
2012/06/26(火) 13:32:59.61ID:???聞きたいのは部分一致検索?曖昧検索?
%による「部分一致」検索なら当然できるけど。
0849NAME IS NULL
2012/06/26(火) 15:40:03.54ID:???部分一致をしたいときは like を使うよ
0850NAME IS NULL
2012/06/26(火) 16:40:41.12ID:???0851NAME IS NULL
2012/06/26(火) 16:41:44.43ID:???0852NAME IS NULL
2012/06/26(火) 19:31:36.89ID:???他のDBとは互換性ないけどね。
0853NAME IS NULL
2012/06/29(金) 15:02:16.54ID:???0854NAME IS NULL
2012/06/29(金) 20:07:57.15ID:TKFPaofb$now_time = date('Y-m-d H:i:s');
$sql_delete = "DELETE from test_tbl WHERE limit < $now_time";
WHEREで一致したものを削除したいのですが、これではダメなようです。
SQLiteで時間の比較はどのように行えばよいでしょうか。
0855NAME IS NULL
2012/06/29(金) 23:57:24.71ID:???select max(length(カラム列)) from テーブル
だとダメなの?
>>854
delete from test_tbl where limit < datetime('now');
だとダメなの?
0856NAME IS NULL
2012/06/30(土) 00:23:31.28ID:???limit 列に入ってる文字列の書式
date 関数が返す文字列の書式
が示されないことにはねえ…
0857NAME IS NULL
2012/06/30(土) 00:36:02.58ID:???0858NAME IS NULL
2012/06/30(土) 09:05:49.28ID:???0859NAME IS NULL
2012/06/30(土) 09:12:06.88ID:???0860NAME IS NULL
2012/06/30(土) 19:19:35.61ID:???LIMIT は予約語
日時の比較はjulianday()でepoch秒にしてから
CREATE TABLE tc (n TEXT, t DATE);
INSERT INTO tc VALUES('A', date('2021-12-21'));
INSERT INTO tc VALUES('W', 'now');
DELETE FROM tc WHERE julianday(t) < julianday('now');
SELECT count(n) FROM tc;
0861NAME IS NULL
2012/07/01(日) 13:20:25.36ID:???遅くなったけどありがとう。できました。
0862NAME IS NULL
2012/07/01(日) 13:22:58.84ID:???0863NAME IS NULL
2012/07/01(日) 14:42:29.78ID:???日付の文字列書式が合ってれば、わざわざ epoch 秒に変換しなくても文字列比較で良くね?
0864NAME IS NULL
2012/07/01(日) 23:26:36.68ID:???0865NAME IS NULL
2012/07/02(月) 22:05:40.38ID:???ビューからデータをSELECTする時、WHEREを使うとSQLite3.3.7でno such columnとか言われます。
CREATE TABLE test(a TEXT, b TEXT, c TEXT);
INSERT INTO test VALUES('123', '456', '789');
CREATE VIEW testview AS SELECT test.a, test.b, test.c FROM test;
SELECT * FROM testview WHERE a='123'; #←WHEREを入れるとaがno such columnって言われる
SELECT * FROM testview; #←WHEREを入れなければ問題ない
これはSQLiteのバグ?俺の頭のバグ?
自宅鯖(3.6.13)だと起きないんだけどレンタル鯖(coreserver.jp)が3.3.7だから困る…
0866NAME IS NULL
2012/07/03(火) 01:22:26.26ID:???test.a がまずいな
0867865
2012/07/03(火) 08:18:18.34ID:???どうもありがとうです。
CREATE VIEW testview AS SELECT a, b, c FROM test;
にしたら、エラーは出なくなりました。
3.3.7では「テーブル名.カラム名」という書き方はNGなのかな。
いかんせんDB始めたてでまだまだよくわかってないです。
0868865
2012/07/03(火) 08:21:06.99ID:???SELECT tableA.fid, (略), tableB.year FROM tableA
INNER JOIN tableB
ON tableA.fid=tableB.fid
実際のビュー定義は結合を使ってるので、「テーブル名.カラム名」がNGだとさてどうしたものかと。
ビューを使わない方法を考えないといけないのかな…
0869NAME IS NULL
2012/07/03(火) 09:07:30.82ID:???tb.[cl]
[tb].[cl]
上記[]を``にする
とかやっても駄目なの?
0870NAME IS NULL
2012/07/03(火) 19:58:50.31ID:???as a とかつけるんではいかんのか。
0871NAME IS NULL
2012/07/03(火) 21:47:05.38ID:???>>869
全通り試してダメだったけど、想像で"tb.cl"ってやってみたら通りました。
でも単純なクエリなら期待通りに動作するけど不可思議動作することもちらほら。
3.6ではcl tb.cl "tb.cl"等の書き方によってなぜか結果が違ったり。
不思議です。
0872NAME IS NULL
2012/07/03(火) 21:49:20.83ID:???SELECT test.a AS a
で魔法のように解決してしまいました。
今日一日の苦労はなんだったのだ…
素人でごめん、どうもありがとうでした。勉強になりました。
0873NAME IS NULL
2012/07/05(木) 10:45:13.81ID:???その内容が、100以下の素数であるレコードだけ抜き出すために
SQLを簡潔に書く方法はありますでしょうか
where num=2 or num=3 or num=5 (略) num=89 or num=97
と書いてもいいんですが、
たとえば
where num={2,3,5,7,11,(略),83,89,97}
のようなまとめた書き方があったら教えてください
0874NAME IS NULL
2012/07/05(木) 11:20:37.40ID:???http://www.dbonline.jp/sqlite/select/index5.html
0875NAME IS NULL
2012/07/05(木) 14:28:14.16ID:???http://toro.2ch.net/test/read.cgi/db/1298737360/873-
http://kohada.2ch.net/test/read.cgi/php/1340275027/215-
0876NAME IS NULL
2012/07/06(金) 10:55:54.73ID:sgE42f78オーダーエントリーシステムを作ろうと思っているのですが、
SQLiteのデータベースから特定の範囲を指定して呼び出す方法がありましたら
ご教授頂きたくお願い申し上げます。
具体的にはカテゴリーとして「パスタ」「サラダ」「ドリンク」等があり、
テーブルビューのリンクを、それぞれの名称にした上で、
そのカテゴリーの範囲内のみをリンクで表示する場合です。
0877NAME IS NULL
2012/07/06(金) 13:05:39.37ID:???select * from メニュー where カテゴリー = 'パスタ';
とか。SQL 勉強しなよ。
0878876
2012/07/06(金) 15:07:15.87ID:sgE42f78早速ありがとうございます。
-(void)readWordFromDatabase {
db = [FMDatabase databaseWithPath:databasePath];
aryDatabase = [[NSMutableArray alloc] init];
[db setLogsErrors:TRUE];
[db setTraceExecution:TRUE];
if (![db open]) {
NSLog(@"Failed to open database");
return;
}
else {
NSLog(@"Openned database successfuly");
}
FMResultSet *rs = [db executeQuery:@"SELECT DISTINCT * FROM menu"];
while ([rs next]) {
//int aID = [rs intForColumn:@"id"];
int aPk = [rs intForColumn:@"pk"];
int aCategory = [rs intForColumn:@"category"];
int aPrice = [rs intForColumn:@"price"];
//int aCt = [rs intForColumn:@"category"];
NSString *aCtname = [rs stringForColumn:@"ctname"];
NSString *aName = [rs stringForColumn:@"name"];
singleStudent *sStudent = [[singleStudent alloc] initWithData:aPk :/*aID :aCt*/aCategory :aPrice :aCtname :aName];
[aryDatabase addObject:sStudent];
[sStudent release];
}
[db close];
}
今、現状がこうなっていのですが、イメージとしては、テーブルビューのメニューで、
データベースはひとつのファイルのまま、パスタ、サラダ、ドリン等のカテゴリーから
パスタを選ぶと、ペペロンチーノ、カルボナーラ、アンチョビとキャベツのパスタ
といった様に、各商品が選べる様にしたいのですが、現状で、パスタのメニューの数だけ、
パスタ、パスタ、パスタ、パスタ、パスタ、パスタ、パスタ、と表示されてしまうので、
カテゴリー毎にまとめられないかと思っていたのですが、可能でしょうか?
0879NAME IS NULL
2012/07/06(金) 21:33:02.00ID:???どこをポイントにしたいんだ?
クエリか?
テーブル構造か?
それともコードか?
最低でも現状のテーブル構造とか出せる情報は出してよ
普通はカテゴリマスタとメニュー商品マスタ作って結合するだろ
0880NAME IS NULL
2012/07/06(金) 21:35:30.37ID:???0881NAME IS NULL
2012/07/06(金) 21:48:27.01ID:???where とか in 句の数とかって上限なかったっけ?
100 までの素数ぐらいだったら大丈夫かな。
もっと大きいところまでやるなら、素数テーブルを用意して
select テーブル.* from 素数テーブル left join テーブル on 素数テーブル.素数 = テーブル.num;
とかかな。
0882NAME IS NULL
2012/07/06(金) 23:31:15.02ID:???# define SQLITE_MAX_SQL_LENGTH 1000000000
# define SQLITE_MAX_EXPR_DEPTH 1000
$ for i in {1..1000}; do stmt="${stmt} OR id = ${i}"; done
$ echo -n "SELECT name FROM people WHERE id = 0 ${stmt};" | sqlite3 entry.sqlite3
Error: Expression tree is too large (maximum depth 1000)
0883881
2012/07/07(土) 05:38:53.25ID:???ぼけてるな > 俺
left じゃなくて、inner だった。
>>882
なるほど、1000 もあれば大抵大丈夫か。
0884NAME IS NULL
2012/07/07(土) 07:18:02.18ID:???あーわかった
メニューにはカテゴリ名が直接入ってて、それでグルーピングしたいってことね。
select カテゴリ from メニュー group by カテゴリ
アプリでもSQLでも出来るだろうけどカテゴリごとに件数数えるとかじゃなければ、
普通はカテゴリだけならカテゴリだけのテーブルから名前を持ってくる。
メニューのテーブルにはカテゴリの名は直接入れちゃダメ
そういうテーブル構成になってないんならそう作り直したほうが良い。
どうせ宿題でしょ?正規化とか結合でググるんだ
メニューテーブルmenu(メニューに関する属性のみ)
menu_id menu_name price menu_desc cat_id
カテゴリテーブルcategory(カテゴリに関する属性のみ)
cat_id cat_name
メニューを出す時にカテゴリ名も引っ張ってきたい時は結合を使う
select
menu_name,
cat_name
from
menu m left join category c
on m.cat_id = c.cat_id
where
price <= 2000
とか。俺だったらクエリで出来ることはなるべくクエリでやる。
0885NAME IS NULL
2012/07/08(日) 00:28:32.91ID:O1K9KaSiGROUP BY date(ctime)
とすると、EXPLAINで見るとインデックスが使われずに full scan となってしまうのですが
良い方法ないでしょうか
0886NAME IS NULL
2012/07/08(日) 03:05:44.63ID:???0887NAME IS NULL
2012/07/08(日) 07:07:42.87ID:???基準日からの日数列を作って、それで group by するとか。
0888NAME IS NULL
2012/07/08(日) 15:40:31.69ID:???非正規化するしかないっすかねぇ
0889NAME IS NULL
2012/07/08(日) 21:11:21.78ID:???そうでなければ全体に対する必要部分の行数でどっちが早いか変わってくるでしょ。
アーキテクチャの違いもあるので、一概にインデックスさえ見れば早いということは言えんのだ。
0890NAME IS NULL
2012/07/11(水) 16:45:44.22ID:???0891NAME IS NULL
2012/07/11(水) 16:46:16.33ID:???0892NAME IS NULL
2012/07/11(水) 17:41:31.35ID:???select * from sqlite_sequence;
0893NAME IS NULL
2012/07/11(水) 22:27:54.03ID:???要件をよく読め
> select 以外
0894NAME IS NULL
2012/07/12(木) 09:53:17.54ID:ynTShOVIsqliteの中身は以下です。
$query = $con->prepare("SELECT * FROM sample WHERE list=?");
$query->execute(array($list));
$listの中身は"を何個か含む200文字程度の内容になります。
0895NAME IS NULL
2012/07/12(木) 12:58:27.15ID:???なんで $list 直接指定しないの?
0896894
2012/07/12(木) 13:06:39.03ID:+vrI1x3+特に問題がなかったのでarrayで渡してました。
0897NAME IS NULL
2012/07/12(木) 13:22:53.93ID:???0898NAME IS NULL
2012/07/12(木) 20:12:52.12ID:???>エスケープとかプレースホルダーを使っている場面やクエリーの増減があるため
文脈がよくわからん…
array 外すか array の中身を晒すかどっちかにしてくれ
>>897
ほんとだワロタw
それじゃ " 以降がどうこう以前に行自体登録できるわけないじゃん
0899sage
2012/07/13(金) 09:26:52.79ID:???aaaaaaa"fuga"bbbbbbb
としたら\でエスケープしてもダメなんだっけ?
0900NAME IS NULL
2012/07/13(金) 13:23:40.42ID:???0901NAME IS NULL
2012/07/13(金) 23:02:48.14ID:???\ 自体も適切にエスケープしないといけないなど面倒だから、
使える環境ならプレースホルダ推奨。
0902NAME IS NULL
2012/07/16(月) 01:05:37.73ID:???だい主キー とか言ったりしてな!
0903NAME IS NULL
2012/07/16(月) 18:13:28.29ID:???0904NAME IS NULL
2012/07/17(火) 23:40:19.97ID:???0905NAME IS NULL
2012/07/17(火) 23:50:24.59ID:???0906NAME IS NULL
2012/07/17(火) 23:54:24.33ID:???0907NAME IS NULL
2012/07/18(水) 01:28:08.26ID:???プライベートではTwitterの自作botの元データ蓄積場所として、
日々お世話になっております
0908NAME IS NULL
2012/07/18(水) 04:17:23.46ID:???80台のパソコンで共有フォルダがあります
そこに1つのSQLiteDBファイルをおいて
80台のクライアントから10秒ごとにselectするのは無謀でしょうか?
データ更新は1日に20回くらいしかないのですが更新されたら即座に通知したいと思っています
0909NAME IS NULL
2012/07/18(水) 09:44:44.36ID:???データ量、
取得クエリ、
実行するマシンのスペックによって
余裕だったり、きつかったりするよ!
0910NAME IS NULL
2012/07/18(水) 13:41:49.49ID:???共有のシステムにもよるが多分破綻するぞ
0911NAME IS NULL
2012/07/18(水) 13:50:16.03ID:???0912NAME IS NULL
2012/07/18(水) 14:36:32.41ID:???意味がわからない
0913NAME IS NULL
2012/07/18(水) 19:08:47.89ID:???まずは用途と、SQLiteを使わないといけない理由を。
その上で、どうしてもSQLiteを使うなら、せめて各クライアントからは直接DBを叩かずにサーバ側のSQLiteで一括して処理するようにするべき。
80台のクライアントから同じ共有ファイルに同時アクセスし続けないといけない状況は、SQLiteと関係なく設計がまずい気がする。
0914NAME IS NULL
2012/07/18(水) 21:22:22.25ID:???0915908
2012/07/19(木) 01:39:41.71ID:???私はプログラム歴2年の新米なのですがデータ管理をするにあたって、
いろいろ調べていたらSQLiteを見つけました
インストールなし、ファイル1個、そのくせパワフル?、Androidに標準搭載
パソコンのOSで言ったらLinuxか?? みたいな感じで一目惚れでした
今回、管理するデータは重要な物でもないし量も多くないし
SQLiteを試してみよと思いいろいろ挑戦していた次第でした
多くのアクセスを使いこなすにはそれなりにハードルがあるんですね
でももうちょっと挑戦してみます
0916NAME IS NULL
2012/07/19(木) 06:25:46.11ID:???0918NAME IS NULL
2012/07/19(木) 15:54:48.74ID:???やろうとしている事を乱暴に言ってしまえば、
複数のSQL Serverインスタンスを用意して
全てのサーバーが一つのデータディレクトリを参照しているようなもの
読み取り専用としてならいいけど今回のケースなら止めて置いた方が…
0919NAME IS NULL
2012/07/19(木) 23:51:45.86ID:???それなら行けるんじゃないか?
walモードが使えるから。
walなら更新は読み込みを阻害しないよ。
取り敢えずやってみて検証結果を教えて欲しいっ。
0920NAME IS NULL
2012/07/19(木) 23:54:57.30ID:???0921NAME IS NULL
2012/07/23(月) 14:22:08.46ID:???最初の質問とちょっと形態が違うからなあ
0922NAME IS NULL
2012/07/26(木) 16:54:14.10ID:/aBlwIAMSELECT * FROM list WHERE sample=$sample and access=$access and level=$level LIMIT 1
この仲のaccessを曖昧検索に変えたいのですが曖昧検索ではLIKE と % を使用するというのを見ました。
複数条件があるWHEREの後にLIKEをどのようにつければいいのでしょうか?
0923NAME IS NULL
2012/07/26(木) 18:03:51.74ID:D083zD7I普通にaccess like $accessではいかんのか
$accessの中身を%文字%にするんだ
0924NAME IS NULL
2012/07/26(木) 18:45:20.34ID:???0925NAME IS NULL
2012/08/02(木) 03:34:36.59ID:???0926NAME IS NULL
2012/08/02(木) 06:04:37.73ID:???0927NAME IS NULL
2012/08/05(日) 14:07:07.11ID:???text型のフィールドにYYYY-MM-DD形式の日付をinsertして
selectで取り出したらなぜか4桁になってた
両端にシングルクォーテーションつけ忘れてるだけだった……
sql = "insert into test values (2012-08-05)" #←x selectすると結果が1999になる
sql = "insert into test values ('2012-08-05')" #←o
実際は変数使ってるから解決するまでにすごい悩んだ
0928NAME IS NULL
2012/08/05(日) 15:16:01.60ID:???0929NAME IS NULL
2012/08/05(日) 20:13:09.11ID:???0930NAME IS NULL
2012/08/06(月) 09:05:35.56ID:???ユーザーバージョンなる項目がありました
SQLiteでそれを変更したり参照する文があるのでしょうか?
バージョンはテーブルを作ってそこで管理していたので
デフォルトでそのようなものが用意されていたなら次からはそれを使おうと思うのですが
0931NAME IS NULL
2012/08/06(月) 11:02:30.60ID:???の中の記述
PRAGMA user_version;
PRAGMA user_version = integer ;
で参照と設定ができるそうです
0932NAME IS NULL
2012/08/07(火) 00:05:53.41ID:???通りすがりだけど、勉強になった、サンクス。
0933NAME IS NULL
2012/08/09(木) 20:46:09.61ID:???普通にorder byしても思った通りにならず・・・
0934NAME IS NULL
2012/08/09(木) 20:58:42.52ID:???まさかと思うが、読みの順とかいいだすんじゃ…
0935NAME IS NULL
2012/08/09(木) 21:00:00.50ID:???どのDBMSでも漢字ソートには無理がある
0936NAME IS NULL
2012/08/09(木) 21:04:08.40ID:???やっぱ膨大な辞書DBでもないと無理ですよね
なんか関数を組み込めるらしいので出来たりしないかなと思ったのですが
0937NAME IS NULL
2012/08/09(木) 22:20:29.57ID:???漢字コードの並びはJIS第一水準が音読みで第二水準が部首順じゃなかったかな。
だから読みで並べるのは無理だし、漢字には複数の読み方があるので
期待通りには並ばないな。
素直にフリガナ付けてそっちでソート
0938NAME IS NULL
2012/08/10(金) 05:28:19.10ID:???> やっぱ膨大な辞書DBでもないと無理ですよね
>>937 も書いてる通り、「漢字には複数の読み方がある」から根本的に無理。
特に人名は顕著だし。
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1238067142
たまに間違えてもいいなら、膨大な辞書もって統計的に推定する方法が取れ
るかもしれないが。
0939NAME IS NULL
2012/08/10(金) 10:05:53.54ID:???そのままソートが不可能だと思わないのかな?
0940NAME IS NULL
2012/08/10(金) 10:47:54.29ID:dgVF/wY50941NAME IS NULL
2012/08/10(金) 11:22:23.57ID:???漢字列でソートしてくれなんて要求が有ったら
脊髄反射レベルで断る。
0942NAME IS NULL
2012/08/10(金) 12:41:38.02ID:???そういう機能も組み込んでるでしょう
まあたぶんないけど
0943NAME IS NULL
2012/08/10(金) 13:17:36.07ID:????と思ったけど「ろうほ」なんて読み方有るんだな、知らなかった。
0944NAME IS NULL
2012/08/10(金) 13:27:16.96ID:dgVF/wY50945NAME IS NULL
2012/08/10(金) 13:42:11.42ID:???組み込んでるも何も、原理的に無理という話なんだが。
0946NAME IS NULL
2012/08/10(金) 15:03:22.17ID:???作ろうと思えば作れる
0947NAME IS NULL
2012/08/10(金) 15:20:50.22ID:???0948NAME IS NULL
2012/08/10(金) 15:44:23.82ID:dgVF/wY50949NAME IS NULL
2012/08/10(金) 21:38:08.93ID:???漢字の1〜n個の全ての組み合わせのソート用辞書を作れば不可能ではないな。
そんなんやるんなら素直にふりがな付けます。
0950NAME IS NULL
2012/08/10(金) 21:56:43.55ID:???その組み合わせのどれを選択するつもりなんだよ…。
ネタで言ってるんじゃないなら、まじでプログラマー向いてないと思うぞ。
0951NAME IS NULL
2012/08/11(土) 14:01:32.87ID:???>>940はどうすんだよ、池沼
0952NAME IS NULL
2012/08/11(土) 16:44:51.06ID:???漢字の全ての組み合わせに決まっておろうw
組み合わせの結果、存在しない熟語も含めて全てふりがな辞書を作る。
JIS第1と第2で6,355文字あるので10文字の組み合わせだけでも
107437414620186645551479209503916015625通り
計算違うか?w
今のハードでは無理だな
0953NAME IS NULL
2012/08/11(土) 16:52:52.12ID:???熟語の振り仮名が一つじゃないって言う例が >>940 に書いてあるんだが…
0954NAME IS NULL
2012/08/11(土) 17:33:11.66ID:???0955NAME IS NULL
2012/08/11(土) 17:55:25.89ID:???そういうのは普通のアプリ開発でも制限事項とするだろう。
それが許容されるかどうかは >>933 の顧客(?)の要求仕様次第。
0956NAME IS NULL
2012/08/11(土) 17:56:51.51ID:???漢字を知らない連中がユニコード作っちゃったわけだが
0957NAME IS NULL
2012/08/11(土) 18:42:07.46ID:???複数の読み方がある熟語は入力禁止とか? (w
これを「制限事項」とか言ってくるベンダーいたら今後取引しないよ。
0958NAME IS NULL
2012/08/11(土) 19:18:02.08ID:???追従はついしょうとついじゅうで意味が異なる。
困ったなw
0959NAME IS NULL
2012/08/11(土) 21:16:49.53ID:???板違い。SQLiteどころかデータベース関係ないし。
続きは↓あたりでどうぞ。
・プログラム技術
文字コード総合スレ part7
http://toro.2ch.net/test/read.cgi/tech/1306595564/
0960NAME IS NULL
2012/08/11(土) 21:18:18.91ID:???なんでやねん
片方の読みに統一やがな
>>958
『追従』だけでてきたら何かわからんがな
>>952 にあるような天文学的組み合わせが出てきた時点でネタ確定ですがな
おまえら暇なんやのぅ
0961NAME IS NULL
2012/08/12(日) 08:39:04.56ID:???ORDER BYの話題だろ
0962NAME IS NULL
2012/08/12(日) 17:24:37.04ID:???0963NAME IS NULL
2012/08/12(日) 20:58:14.31ID:???0964NAME IS NULL
2012/08/13(月) 00:33:33.79ID:???0965NAME IS NULL
2012/08/13(月) 01:28:27.32ID:???一行目を二行目と三行目の間に突っ込むとか。
0966NAME IS NULL
2012/08/13(月) 01:37:23.98ID:???0967NAME IS NULL
2012/08/13(月) 07:53:51.50ID:???0968NAME IS NULL
2012/08/13(月) 08:54:20.50ID:???○ アホなこと
0969NAME IS NULL
2012/08/13(月) 09:01:17.16ID:???0970NAME IS NULL
2012/08/13(月) 09:07:04.84ID:???0971NAME IS NULL
2012/08/13(月) 10:06:11.02ID:???0972NAME IS NULL
2012/08/13(月) 10:24:19.03ID:???0973NAME IS NULL
2012/08/13(月) 11:04:10.00ID:???0974NAME IS NULL
2012/08/13(月) 11:40:26.14ID:???>>933を解決してください。
0975NAME IS NULL
2012/08/13(月) 11:56:49.81ID:???>>963へのレスだよ。
同じ読みは人間でも区別付かないから無理だろ。
任意の順番なら、 ORDER BY num = 15 DESC, num = 3 DESC , ・・・
とかつなげりゃ好きな順番にできる。
0976NAME IS NULL
2012/08/13(月) 11:58:01.64ID:???○漢字の読み
ミスった
0977NAME IS NULL
2012/08/13(月) 12:28:32.00ID:???一行目、二行目、三行目を識別するフィールドが無い場合は?
>>963 みたいな奴は、そういうテーブルでも何とかしろとか言うぞ。
Excel はできるからな。(w
0978NAME IS NULL
2012/08/13(月) 13:46:16.75ID:???0979NAME IS NULL
2012/08/13(月) 14:50:46.24ID:???0980NAME IS NULL
2012/08/13(月) 15:14:19.82ID:???0981NAME IS NULL
2012/08/13(月) 15:19:58.81ID:???0982NAME IS NULL
2012/08/13(月) 21:30:14.97ID:???0983NAME IS NULL
2012/08/13(月) 23:00:13.37ID:7Zv3PRLAsubstr() がマルチバイト対応されてないので、五十音索引ページとか作ろうとすると、
アプリ側でもう一度集約処理してあげないといけなくて、うへぇ。。
0984NAME IS NULL
2012/08/14(火) 21:41:33.98ID:???0985NAME IS NULL
2012/08/15(水) 02:56:06.09ID:???> substr() がマルチバイト対応されてないので
http://www.sqlite.org/lang_corefunc.html
substr(X,Y,Z): If X is a string then characters indices refer to actual UTF-8 characters.
> create table t (name text);
> .separator '\n'
> .import test.txt t1 -- test.txt は、このスレの内容を utf-8 で保存したもの。
> select substr(name, 1, 1), count(*) from t group by substr(name, 1, 1) order by count(*);
...
"お",94
"な",96
"あ",102
"ど",110
s,128
h,130
"こ",136
S,178
9,194
4,222
6,226
5,228
7,228
8,230
2,240
3,248
1,260
"そ",272
>,724
"",1562
レス数が950を超えています。1000を超えると書き込みができなくなります。