SQLite Part.10
レス数が950を超えています。1000を超えると書き込みができなくなります。
>>899
なんだそれw
どうやるのかを答えられないなら黙ってなよ >>900
俺は答えられないので、ファイルシステムのジャーナル機能と
SQLiteのトランザクション機能におんぶにだっこだわ
炊飯器の炊飯の仕組みはわからんけど説明書は良く読む派です >>901
> ファイルシステムのジャーナル機能と
> SQLiteのトランザクション機能におんぶにだっこだわ
それOS落ちた時も確実に動くことが保証されてるの? >>902
電断に勝つことを最終目標としてんだからまあ大丈夫っしょ
とりあえず電源ガチャガチャを1000回やってOKだったし
原理は知らんけど >>903
うん、君がイイと思うならいいんじゃね
君のシステムなら 仕事のシステムだけど、ぜんぜんオッケーよ
「リチャードが大丈夫っつったしテストもすげーしたからセーフ」
って仕様書にも書いたよ >>900
うわー、この人「黙ってなよ」の人だったかw
そりゃキューなんてOS落ちたら内容保持しなくてもOKだわww
知識も経験も碌に無いのになんで知ったかぶりして出しゃばりたがるんだろうな >>903
OSクラッシュや電源断の時のトランザクションのatomicityは保証されてるよ
DBがcorruptするのは使い方が間違ってるか設定が間違ってるかSQLiteのバグかOSの欠陥
https://sqlite.org/transactional.html
原理を知りたければ説明書読んでね
https://sqlite.org/atomiccommit.html >>906
だからそう言うのは>>892に言ってくれよ
OS落ちても続きから処理したいケースがいくらでもあるらしいしw
> プロセス間のキューならOS落ちても起動後に続きから処理したいケースなんて
> いくらでもあるから、すげー特殊なんてこたあない。普通にあり得る。 >>907
リンク先ちゃんと読んでる?
If after power is restored the file is only partially deleted, if some of its data has been altered or erased, or the file has been truncated but not completely removed, then database corruption will likely result.
って書いてますけど?w
そもそも普通のOSは100%ファイルシステムが壊れないと保証してないのにその上に載ってるDBファイルが壊れない保証なんてできるわけないだろ >>909
うわーそれ何書いてるかわからないんだww
負け惜しみしか言えないなら黙ってなよwww >>910
> うわーそれ何書いてるかわからないんだww
説明してみ
> 負け惜しみしか言えないなら黙ってなよwww
お前がなw 荒れてるなあ。
OS単体だったらメインフレームでもない限りシステムダウン時のデータ保証はされないのが普通だけど、
それを気にするような要件なら当然ソフト(ファイルシステム・ドライバ・ミドルウェア)も
ハード(HDD/SSD・ストレージ装置・キャッシュ制御)もそれなりのものを入れて
システム全体で保証するだろうから、SQLite観点で仕様を検討する上ではその議論は不毛じゃないかね。
SQLiteを使ってるプロセスとしてデータ保証が出来ていればOKと思う。
データ保証が必要なキューのアーキテクチャの云々はスレ違いなので他スレでどうぞ。 >>912
それトランザクションのAtomicityを保証するという話と違わないか? >>910
あれ?
説明まだかなーーーw
>>912
> OS単体だったらメインフレームでもない限りシステムダウン時のデータ保証はされないのが普通だけど、
>>892,894によるとされるのが普通らしいのでw 何事も過信は禁物で、各レイヤでのバックアップは不可欠
運用システムのリスク許容度に応じて各自が判断しましょうできるように力を養いましょう ジャーナリングつきのファイルシステムなら急な電源切断は、保証はされないけど、だいたい壊れないやろ。
それでよければいいだけの話。 >>914
OSによるものではなくファイルシステムによるものでは?
ファイルシステムもOSじゃいって言うのならまあそうだけど さすがに>>918の文章を理解できない人には用はないので無駄に絡んでこないでねw 『データ保証』みたいな曖昧な言葉を使ってるからダメなんだよ >>923
専用ブラウザで>>918を透明あぼ~んすれば連鎖あぼ~ん出来るよ RDBMSをExcelだと思っているやつは多いからな。 まあ世の中の9割5分のデータベースはエクセルで代用できるしな >>927
代用できるというか、活用できてないだけじゃね? DBの代用しちゃってるくらいならまだ良い方。
仕様書をエクセルで作る人とか、スクリーンショット送ってと言ったらエクセルに貼り付けて送ってくる人とか、色々いるよ・・・。 スクショはどうするのがいいの?
技術に明るい人だけが閲覧するものならどうにでもなるんだけど
そうじゃない人も見るようなやつ 単なるスクショだけならjpegとかでもいいけど複数のスクショにコメント入れたりしたい場合はExcelでもいいと思うよ 未だにexcelを表計算ソフトかなんかだと思ってる人がいるのな 画像にコメント入れるだけならパワポで良いでしょ。せめてワード。エクセルは無い。 PowerPointもWordもページの制約が大きすぎるからそれに合わない用途の場合にExcelが選ばれる
設計書にスクショを含める場合とかならWord使うしユーザーにUIを説明するような用途ならパワポ使う
特にスクショを多く含むWordは手間書ければキレイに見せられるがメンテコストが高い
そしてここはSQLiteスレ Excel等のOffice製品に貼り付けた画像は、ExcelファイルのZIP圧縮を展開すれば、Excel内部では画像ファイルとして存在しているので、Excelファイルに貼り付けるのも悪くはない。
画像ファイルで渡してこないことを馬鹿にしているけど、おそらく馬鹿にしているやつもWindowsのスナッピングツールではなく、プリントスクリーンキーで画面キャプチャを取っていそう。
どっちもどっちだろうな。 さらにどうでもいい比較を放り込んでくるいつものキチさんw 22-Year-Old Vulnerability Reported in Widely Used SQLite Database Library
https://thehackernews.com/2022/10/22-year-old-vulnerability-reported-in.html
SQLite Release 3.39.2 On 2022-07-21
https://sqlite.org/releaselog/3_39_2.html
>>この脆弱性は、数十年前には非現実的と見なされていたシナリオ (入力として 1 GB の文字列を割り当てる) が、64 ビット コンピューティングシステムの出現により実現可能になった例でもあります。 へー、興味深い。そういうのは他のソフトとかでもあったりするんだろうな。 2000年まで使われると思わずに西暦の下二桁が99までしか考慮されていなかったのが、まだ25年くらい前の話だしな。 ほんの30年前のHDDには504MBの壁とかあったしな アドレス空間は64KBなのにメガロムは128KBもあってさ
バンク切り替えの概念は当時の自分には難しすぎてな・・・ 「SQLite3 WASM/JS」パブリックベータ公開。SQLite 3.40でサポート開始、WebブラウザなどでSQLiteが実行可能に - Publickey
https://www.publickey1.jp/blog/22/sqlite3_wasmjssqlite_340websqlite.html
>>本バージョンから...(略)...配布される公式のバイナリにLinux版、Windows版、Mac OS X版、Android版などと共に「SQLite3 WASM/JS」が含まれるようになりました。 SQLite3 WASM/JS、Origin Private File Systemを用いてChrome上の高速なローカルDBが機能するとGoogleが明らかに、廃止されたWeb SQLの代替として利用可能 - Publickey
https://www.publickey1.jp/blog/23/sqlite3_wasmjsorigin_private_file_systemchromedbgoogleweb_sql.html みんなどのくらいのサイズで使ってるの?
一番大きいテーブルで一万件くらい?
スマホアプリにちょっと乗っける程度で使うもんなの? >>947
100万件くらいの案件だけど問題なく使えてるよ。レコードサイズにもよると思うけど。
あとはアクセス頻度とか、複数プロセスから同時にアクセスするかどうかとか、その辺によるのでは。 >>948
ありがとうございます
正直勇気が湧きました selectだけならなんぼでもいけそうやな
B-Treeの構造上 マシンパワーが上がっているから、処理性能も連動して上がる。 https://www.sqlite.org/np1queryprob.html
> The SQLite database runs in the same process address space as the application.
> Queries do not involve message round-trips, only a function call.
HDD→SSDでクッソ恩恵受けてそう。 デスクトップに a.db て適当な名前のdb作って書き込んでたら
書き込み中に a.nal ってファイルが現れてフイタ インサートだけの簡単なプログラムで使ってるけどdbファイルが2GB近くになった
dbファイルを消して新たに同じデータを流し込んだら3MB程度なのに
何でだろう そのツールは知りませんでした
分析してみます
ありがとうございます その2GBをvacuumしたら3MBになるみたいな簡単なオチではないよね・・・? >>959
そりゃ当然なるやろ
VACUUM相当のことをやったら3MBになったと書いてるじゃん
INSERTだけで3MBが2GBになる理由がわからなければ
アプリで定期的にVACUUMしなければいけないかわからないから
質問者的には意味が無いと思うよ 「インサートだけの簡単なプログラム」←これが一番怪しい気がする。
実はインサートだけじゃなかった、に一票。 SQLiteってトランザクションログとかあるでしょうか
実際の入力値に比べてdbファイルが随分デカくなってる気がするので dbファイルが大きくなる問題に悩んでいる者ですがTextに長い文字が入ってくると項目の長さも拡張されるでしょうか
SQLServerでのMAXの精度指定のようなイメージです
ちなみにバキュームをしてもdbファイルのサイズは変わらないので知らない処理がこっそりデリートしてる事は無いと思います 隙間にデータを埋めたり、小さい隙間をなくす処理をしていたりと、初心者しか思いつかないようなネタを考えてられるのがすごいな。
あちこちで同じネタを製品別に書くのも飽きないか? ファイル内の物理的なデータ位置が頻繁に変わる実装じゃ、使い物にならねえよw ストレージの断片化を進める仕組みにメリットがあるかと考えればわかると思う
狭いところを使おうとして、他のデータを移動させるのもメリットがあるのか >>963
SQLiteのtext型は、高度なRDBMSのLOB型と同じで、サイズが巨大だから安易に使うとどんどんデータファイルが大きくなる。
text型は巨大な文字データ型。
自分が格納している文字列に対して、使わない長さの領域を確保するので、INSERTでレコードが増えれば、ものすごい勢いでデータファイルが大きくなる。
SQLiteは大量のレコードを扱う用途には向いていない。 >>966
mallocのアルゴリズムみたいなやつでしょ
細かいやつ用とでかいやつ用にわけておくやつ
データの移動はさすがにバキューン以外でやらんよ まーたいい加減な嘘連投するやつ来てるね
質問者が騙されないことを祈る SQLite公式マニュアル
https://www.sqlite.org/index.html
text型は文字列型というより、文章・文書の内容を格納する大きな文字データ型
text型を使うとレコードサイズが大きくなるため、レコードが増えるとdbファイル(データファイル)がすぐに大きくなる。
バキュームしてもtext型のカラムが確保している部分が大きいので、さほどdbファイル(データファイル)は小さくならない。 いつもの法螺吹き君はカラムがすべて固定長だとでも思ってるみたいだねww 保存してる文字列のサイズが大きければ保存先のファイルが大きくなるのは当然だよね
圧縮すれば小さくなるけどそれはデータ型とは関係のない話 >>973
固定長じゃなくて、ブロックのような単位で領域を確保する。
あなたのような素人にはファイルのどこにデータがあるのか考えたこともないんだろうね。
バキュームは位置が変わるんだよ。
意味がある文字列が長い文字列に更新されたときに離れたところに続きのデータを配置すると思っているかのような言い草だけど、それこそ古い考え方だよ。
VSAMファイルみたいな階層型データベースの改良版ではないぞ。 >>974
それはまったく違う。dbファイルの中身を比較すればわかるだろ また関係ない話を持ち出して法螺吹くボラクルww
>固定長じゃなくて、ブロックのような単位で領域を確保する。
固定長の意味すら知らないんだなww
>バキュームしてもtext型のカラムが確保している部分が大きいので、さほどdbファイル(データファイル)は小さくならない。
知りもしないことで↑こんな嘘ついてる暇があったら基礎を勉強してねw レス数が950を超えています。1000を超えると書き込みができなくなります。