SQLite Part.10
レス数が1000を超えています。これ以上書き込みはできません。
>>781
バカアピール乙 w
↑
こういう用法で合っているか? >>779
なんの話がしたいんや?
訓練されたマなら読めて当然やが、大元の質問をするような人は読めなくても当然。 アンカー間違えてるぞ w
正しい使い方
>>780, >>782
バカアピール乙 >>777
日本国民のほぼ全員が英語教育を受けてるので読めるやつは多いだろう。
プログラミング教育も必須化されるので、、、 >>783
訓練 w
矢印追っかけていくだけだからむしろ子供とかプログラムとか知らない奴の方が理解しやすいだろ > バカは他人をバカ呼ばわりする
上から目線の>>787が言うなよww sqliteもいつの間にかJSON型使えるようになってたんだな。
知らんかったよ・・。 皆さん冬眠中のとこわるいんだけど1点教えて
Pythonで
sql = 'select * from hoge'
cur.execute(sql)
for i in cur:
print(i)
と
sql = 'select * from hoge'
cur.execute(sql)
l = cur.fetchall()
for i in i:
print(i)
同じ結果になる。fetchall()て使わないとダメなの? >>794
Pythonのライブラリみたいだけど、SQLite関係なくない?
cur.execute(sql) を
for i in cur: で一つずつ取得する場合はfetchは不要みたいだね >>794
> for i in i:
は
for i in l:
だとして
> 同じ結果になる。fetchall()て使わないとダメなの?
別に使わなくていい、と言うかでかいデータをfetchall()するとメモリー上に展開するからやっちゃダメ
ただforとかfetchone()で回すとシリアルにしか処理できないから読み込んでpythonでランダムに処理したい時とかはfetchall()で一気に読み込んで処理するとかはあり得る ありがとう
fetchallがPythonライブラリなのは知らなんだわ すいません。パナのVIERAの録画用外付けHDDがTVで読めなくなったので救出中です。
ddからごにょごにょしてファイルを拾ってみると、txt、dbx、spliteとかのファイルがあって、どうやらデータ保存にこのSQLiteってのを使ってるみたいなんです。誰か同じようにデータ救出したことある人いませんか?
現状、拾ったファイルからプリセットと思われるDBが見えてるだけの状態です。
https://imgur.com/pg50Nq7 >>800
そんなもんが簡単にできたら祭りになってる
データ自体は読み出せるだろうけど暗号化されてるから復号キーを知り得る立場でないと意味ないぞ アクセスの特性を考えても動画そのものはSQLiteには入れないだろうね。
datnameという列が動画ファイルの名前なのかな。 アクセスみたいなフォーム・レポート機能も欲しいよね なんかワンセットで使えるものないのかね
アメリカだとジャスパーレポートがあるのか db browser for sqliteの問題なのかも知れないけど
maindb.tbl1とattachしたsubdb.tbl2をjoinした結果でcreate viewして、
それをselectしたら、no such db:"maindb.tbl2"ってエラーになったんだけど、他の人も再現しますか?
joinした結果だけなら普通にselectできて、中身も正しいんだけど
エラーメッセージからも、どうもattachしたsubdbがviewにすると上手く参照出来てないっぽい 日付型がネックだなこれ
excelからVBAで書き込もうとしたけど上手くいかない >>814
sqliteに日付型なんぞ無い
文字型と数値型で代用さ あったらあったでややこしいのが日付型。
タイムゾーンとか範囲とか精度とか表現とか。。。 >>817
文字型にするかepochからの経過日数にするとか >>817
あんまりみたことないやりかた。w
でも、わかる。
わるくないかも? >>819
ふつーだと思う
日付型の演算が必要なければ文字列型にしても不自由はない。 8文字の文字列にするのはよくあるが8桁の数値にするのは見たことないわ BCDの変形だけど、何ていうんだろう
Decimal Coded Clock notationで、DCC?
というか、time()とかdate()とかって関数なかったっけ? >>821
COBOLの時代には普通にあったよ
文字だと8バイトだがPacked-Decimalだと5バイト
記憶装置が貧弱だった時代の話し オマエらSQLiteのマニュアルをちゃんと見ろよ。
日付について詳しく書いてある。
オープンソースであんだけしっかりとマニュアルが有るのは無いぞ。 ドキュメントはPostgreSQLもしっかりしてるぞ >>821
文字型だとexcelにインポートしたときソート出来ないので 別に>>826に文字列型にしろと言ってるわけじゃないから好きな方法でいいと思うよ SQL Server スレで見た Select の中の values に刺激されて SQLite でテスト
https://i.imgur.com/WbWYC32.png 出来るようになったんだ。
postgresqlでは昔からあったこの書き方。 Create temporary view で接続時限定のマスタを仕立てたりするのに使えるかな コマンドライン(sqlite3)でパスワード付きのファイルを使うときはどうやってパスワード指定するの? C#版のsystem.data.sqlite.dllの暗号化機能は無くなったのでしょうか? SQLiteのWALファイルが80GBを超えている(DBファイルは8GBほど)なのですが、
これってふつうなのでしょうか。
ググると、WALファイルの内容はコミットされたときに、DBファイルとマージされるという趣旨の記事を見かけたのですが、
WALファイルの内容をDBファイルに加えて、安全に削除できるようにするにはどうしたらいいのでしょうか。
よろしくお願いいたします sqliteのソースコードからビルドってどうやるのでしょうか?
dllファイルを作ろうと公式からamalgamationをダウンロードして、visual studioのc++のプロジェクトに中身全部追加してビルドしようとしても「プリコンパイル ヘッダーを検索中に不明な EOF が見つかりました。'#include "pch.h"' をソースに追加しましたか?」など色々エラーや警告が出ます >>842
プロジェクトの設定で、プリコンパイルヘッダが有効になってんじゃないの?
無効にしないと。 >>843
ようやく出来ましたわ
どこ見ても同じような指南していて、その通りにしているのに同じエラーが出続けて参ってました
構成とプラットフォームのコンボボックスにも適切な設定をしないと駄目なんですね
ありがとう SQLiteって、プリペアドステートメントでマルチステートメントって使えないものなの?
凄く初歩的な質問で申し訳ないが、当方Web系ではないので全く相場が分かってない。
PHPからSQLiteを操作している。
元々既に動いているプロトタイプではリテラルで与えていたSQLを、
本格運用前にその他機能も付けてプリペアドに書き換えているのだが、
そうすると何故か動かないケースに何度も遭遇し、色々試ししたところ、
どうやら頭の一つしか動いていないっぽいことに気づいた。
それでググッたのだが、そのものは出てこない。
ただしプリペアドの使用例ではどこもシングルステートメントで書かれているし、
MySQL8.0の仕様書には「プリペアドはマルチステートメントには対応していません」と明示されており、
MySQLで対応出来てない機能がSQLiteにあるはずも無しか?とも思っている。
(というよりそもそもプリペアドがマルチステートメントに対応しているDBが無いのか?)
そこで上記の質問になる。
もう諦めてシングルステートメントに書き直しているが、一応確認したい。 もし「使える」とここで言われたところで、実際におまえのところで使えないのであれば、意味はまったくないで? 別の人DBMS使ってるけどそれはマルチステートメントでパラメータ使えないな
使えるのってあるのかね >>847
やはりそうか。ありがとう。
>>846
今作っているのは他環境用(公開用)だから。
バージョン上げて済むならそうするし、動作条件にそう書くだけ。
プリペアドがシングルステートメント専用だと絶望的にコードが汚くなる。
これだと上位階層でラップしたくなるのも分かる。
そしてLaravel見たが、完全にORMに近い。まあそりゃそうだ。
(プリペアドが必要な場合は、)SQLなんてベタで書くものではないと痛感している。
ただなあ、ポインタを渡しているだけっぽいので、実装は難しくなさそうだし、やる気がないだけか?
確かにフレームワークで隠蔽するべきだし、その場合には最早どうでもいいのも確かだけど。 他のDBならストアド
SQLiteならユーザー定義関数 https://kurashigoto.hokkaido.jp/flexibleSearch/search.php?offset=0&limit=20&search=%E3%83%98%E3%83%AB%E3%82%B9%E5%AC%A2%E3%83%BB%E5%A3%B2%E6%98%A5%E5%A9%A6%E3%81%AE%E9%87%91%E5%9F%8E%E8%8B%B1%E9%87%8C%E3%81%95%E3%82%93%EF%BC%881984%EF%BC%8F3%EF%BC%8F21%E7%94%9F%EF%BC%89%E3%81%AE%E8%87%AA%E6%92%AE%E3%82%8A%E3%83%8C%E3%83%BC%E3%83%89%E5%85%AC%E9%96%8B%E4%B8%ADavgle
https://magazine.jp.square-enix.com/top/comics/?search=q&x=0&y=0&sword=%E3%83%98%E3%83%AB%E3%82%B9%E5%AC%A2%E3%83%BB%E5%A3%B2%E6%98%A5%E5%A9%A6%E3%81%AE%E9%87%91%E5%9F%8E%E8%8B%B1%E9%87%8C%E3%81%95%E3%82%93%EF%BC%881984%EF%BC%8F3%EF%BC%8F21%E7%94%9F%EF%BC%89%E3%81%AE%E8%87%AA%E6%92%AE%E3%82%8A%E3%83%8C%E3%83%BC%E3%83%89%E5%85%AC%E9%96%8B%E4%B8%ADavgle
https://miyagi.doctor-search.tv/search/hospital?dis=3000&Keyword=%E3%83%98%E3%83%AB%E3%82%B9%E5%AC%A2%E3%83%BB%E5%A3%B2%E6%98%A5%E5%A9%A6%E3%81%AE%E9%87%91%E5%9F%8E%E8%8B%B1%E9%87%8C%E3%81%95%E3%82%93%EF%BC%881984%EF%BC%8F3%EF%BC%8F21%E7%94%9F%EF%BC%89%E3%81%AE%E8%87%AA%E6%92%AE%E3%82%8A%E3%83%8C%E3%83%BC%E3%83%89%E5%85%AC%E9%96%8B%E4%B8%ADavgle
https://mtke-job.jp/list/keyword=%E3%83%98%E3%83%AB%E3%82%B9%E5%AC%A2%E3%83%BB%E5%A3%B2%E6%98%A5%E5%A9%A6%E3%81%AE%E9%87%91%E5%9F%8E%E8%8B%B1%E9%87%8C%E3%81%95%E3%82%93%EF%BC%881984%EF%BC%8F3%EF%BC%8F21%E7%94%9F%EF%BC%89%E3%81%AE%E8%87%AA%E6%92%AE%E3%82%8A%E3%83%8C%E3%83%BC%E3%83%89%E5%85%AC%E9%96%8B%E4%B8%ADavgle
https://news.dwango.jp/search/?s=%E3%83%98%E3%83%AB%E3%82%B9%E5%AC%A2%E3%83%BB%E5%A3%B2%E6%98%A5%E5%A9%A6%E3%81%AE%E9%87%91%E5%9F%8E%E8%8B%B1%E9%87%8C%E3%81%95%E3%82%93%EF%BC%881984%EF%BC%8F3%EF%BC%8F21%E7%94%9F%EF%BC%89%E3%81%AE%E8%87%AA%E6%92%AE%E3%82%8A%E3%83%8C%E3%83%BC%E3%83%89%E5%85%AC%E9%96%8B%E4%B8%ADavgle windows版のSQLite3でFTS5を、トークナイザにtrigramを指定して使ってみたのですが
検索文字を2文字以下にするとヒット数が0件になります
スキーマは
CREATE VIRTUAL TABLE novel USING fts5(text, tokenize= 'trigram')
で、
SELECT * from novel WHERE text MATCH 'ジョー';
→結果391件
SELECT * from novel WHERE text MATCH 'ジョ';
→結果0件
という感じです
SQLite3のtrigramは3文字以上の語句しか検索できないのでしょうか? >>851
> Notes:
> Substrings consisting of fewer than 3 unicode characters do not match any rows when used with a full-text query.
> If a LIKE or GLOB pattern does not contain at least one sequence of non-wildcard unicode characters,
> FTS5 falls back to a linear scan of the entire table.
> https://www.sqlite.org/fts5.html#trigramidx 不親切だとは思うけどね。
それ含めてテスト中なのだとも思うけど。 >>856
どんな「テスト」なんや?w
ドキュメントを読まない、ググらない、想像もしないヤツに「親切」とは?
>>851よりも>>856のほうがバカに見えるな。。。 >>857
Experimentalなんだから、仕様のテスト中だよ。
MATCH対象は文字列なのだから、プリペアドで与えられる事も普通にある。つまり、変数扱いだ。
なら、今の仕様だとプログラム側(上位)で「3文字以上かどうか」を判定してSQLを切り替えてやらないといけなくなる。
これだと使いにくいでしょ。
普通なら、
・2文字以下の場合は内部的にLIKEに切り替えてヒットするようにするか、
・2文字以下もヒットして欲しい場合はMATCHではなく別の予約語(NEARMATCH)とかを用意するか
だと思うけど。
Experimentalが何か知らないお前が一番頭悪いよ。なお853=856=俺な。
>>851に対して言える事は、
SQLiteは公式ドキュメントが素晴らしくよく出来てるので、引っかかったらまずは公式を読めって事だね。
はっきり言って大体公式だけで解決する。 >>858
> ・2文字以下の場合は内部的にLIKEに切り替えてヒットするようにするか、
> ・2文字以下もヒットして欲しい場合はMATCHではなく別の予約語(NEARMATCH)とかを用意するか
こんな提案、なおさらバカに見えるわ。w >>859
だとするとお前が「仕様はどうあるべきか」考えるレベルに至ってないだけの話だよ。
変数で与えたらいちいち文字数なんて気にしてないのだから、今の仕様だと、
・プログラミング側で3文字以上であることをいちいち確認するか --- (A)
・さらに上位の仕様で3文字以上である事を保証する(例えばパスワードで8文字以上とかのあれ)か、 --- (B)
・SQLite側で何らかの対応をする --- (C)
のどれかが必要で、Aだと各ライブラリ/フレームワーク/ORM内に「3文字以上チェック」のコードが必要になるだろ。
CならそれがSQLite内の1箇所で済む。
だったら、全世界で重複コードが出来るだけ少なくなるように最適化する場合は、自ずとCになる、ってだけ。
それが分からないお前は、無駄にコード重複しまくってる馬鹿だと断定出来る。
本来そのコードがどこに置かれるべきか考える癖を付けたほうがいい。
で、それ含めてExperimentalで、つまり、
・3文字以下は無視の今の仕様でいいか、
・何らかの対策を盛り込むべきか
というわけだよ。実際に使ってフィードバックしろって事。
限界ギリギリまで高速にする場合は今の「無視」の仕様がよくて、現実的にほぼ2文字以下の検索なんて必要ないのならそれもあり、
いやいちいちラッパを用意するのがウザイ、なら仕様変更で2文字以下も自然にヒットするようになる、というだけ。
だからこそ Note になってるわけで。 >>860
SQLは、素人のオモチャやないんやで!w
適当に自動でやりゃあいいってもんやない。
速度激遅のリスクを内包するわけないから、最低限の仕様にしかならんわ。 >>861
劇遅ではない。
クエリプランナ(つまりインタプリタ)でif文1個分だよ。しかもSQLiteだとC言語だ。
上位で対応するよりは段違いに速いよ。
まあどのみち君には仕様を考える頭はないし、君に決定権があるわけでもないからいいけどね。 長文はn-gram知らんかったんだけやんww
なんかこっちが恥ずかしくなるわ >>862
全文検索のインデックスについてよーく調べるようにな。w
C言語がどうとか関係ないことを知ってるふうにしゃべってる場合ちゃうで! >>862
君には実装を考える頭はないし、君に決定権があるわけでもないからいいけどね。
いやマジでホントによかった。 sqliteベースでFilemaker Proみたいに簡単にDBアプリ作れるソフトはないかのう...。
できればLinuxで....。あったら御教授くだされ。
とりあえず、PythonとPyQtでフロントエンド作り始めたんだけど、挫折しそう.... >>866
>>PyQT
なんで一番面倒な方法使うかなw Streamlitにしとけ
凄い楽にWebUI作れる お前ら和歌山県出身の下村拓郎様(35歳独身、元自衛隊)をご存知か、この方は将来素晴しい人物になるから覚えておいて損はないぞ 皆様ありがとう。866です。
おかげさまで住所録と顧客名簿をFileMakerからPySqlite3 & PyQtに移行できました。
どちらも15フィールド100レコードぐらい...年賀状づくりに間に合って良かったです。 >>876
慣れっすよ、慣れ。
だいぶ前にtkinterとWxとPyQtならべてデザイナの良さでPyQtになってしまいました。
結局pycsv(データ以降用)+PyQt(GUI)+pysqlite3(DB)+reportlab(印刷)という
構成で実装できました。とても他人に見せられる代物じゃございやせんが... ちょっと変わった質問なんですが
iPhone8+からiPhone13proに乗り換え、起動時の移行マネージャでほぼ中身が同じになったと思っています
iPhone13において、iPhone8+で削除したデータを復元させることは可能でしょうか?
移行がSQLiteそのまま移植しているのか、画像データのみ送っているのかにもよると思いますが...
このあたり知見ある方いましたら有難いです sqliteってasyncでrelationshipって効かなくないすか?
asyncにすると関係性なくなるけど
なぜかasyncにしなければrelationshipが効きます 改めて.db消してやったらすんなりできた・・
お騒がせしました SQLiteを優先順位付きのキューとして使うのは 良いことでしょうか
複数のプロセス(CとかPHPとかbashとか)からのメッセージを
別のひとつのプロセスがそこそこのタイミングで受け取りたい
(毎秒チェックで許されるくらい) >>886
良いことか悪いことかは主観によるので何とも。
実現可能性、という観点でいくと、FAQによれば、
https://www.sqlite.org/faq.html#q19
SQLiteがHDDへのデータの書き込みを完全に保証するためには、HDDのプラッタが2回転するのを待つ必要があり、
一般的な7200rpmのHDDは1分に7200回転=1秒に120回転なので、1秒につき60回のトランザクションが限界。
ということなので、受信側のSELECTが毎秒1回として、送信側のINSERT頻度次第では可能。
ただし、毎秒60トランザクションは理論値で、実際にはSQLite以外のプロセスもHDDを使うだろうから、
例えば全HDDアクセスの半分を他のプロセスで使うと仮定すると30回/秒まで、もしくはHDDがビジーで
90%を他のプロセスが使う環境であればSQLiteのトランザクションは6回/秒が限界ということになる。
SSDの場合は多分もっと多いけどね。その辺はデバイスの書き込み能力によって計算が必要。
あとはトランザクション内で色々操作したらその分SQLiteからHDDへの書き込み回数も増えるだろうから、
実際のトランザクション数の限界はもうちょい減るかもね。
キューなら不用になった行は受信側で印をつけたり消したりもするだろうし。 >>887
キューなんてOS落ちたら内容保持してても意味ないからそのFAQの最後にある
PRAGMA synchronous=OFF
にすればいいだけ そりゃすげー特殊な案件まで含めたらそんな案件もあるのかも知れんけどねw プロセス間のキューならOS落ちても起動後に続きから処理したいケースなんて
いくらでもあるから、すげー特殊なんてこたあない。普通にあり得る。
PRAGMA synchronous=OFFってよく分かってないんだけどディスクにsyncしなくても他のプロセスとの
一貫性って保てるのかな?OS介してればディスクにsyncする前でもキャッシュから読まれるからセーフ?
ネットワークファイルシステムだったら駄目っぽいけどローカルで完結するなら良いのかな・・? >>892
> プロセス間のキューならOS落ちても起動後に続きから処理したいケースなんていくらでもあるから、すげー特殊なんてこたあない。普通にあり得る。
簡単そうに言ってるけどプロセス側もどこまで処理したかをキチンと記録して回復しないといけないしそもそもOS落ちるってことはどこまで記録されてるかの保証もないしヘタしたらファイルシステムぶっ壊れてる可能性すらあるのに普通にあるとか言われても草
> PRAGMA synchronous=OFFってよく分かってないんだけどディスクにsyncしなくても他のプロセスとの
> 一貫性って保てるのかな?OS介してればディスクにsyncする前でもキャッシュから読まれるからセーフ?
簡単に言えばキャッシュの内容をストレージにいちいち反映させない(暇になったら反映する)ってこと
一貫性の管理はメモリー上でやってるから問題ない
> ネットワークファイルシステムだったら駄目っぽいけどローカルで完結するなら良いのかな・・?
ネットワークファイルシステムでも同じだよ、ファイルシステム自体はサーバー側にあるんだし >>892
あり得るとかじゃなくて極々普通にあるよ
メッセージキュー使ったシステムに少しでも関わったことがあれば誰でも知ってること >>894
自演乙?w
とりあえず具体的なシステム名頼むわ Chrome開発チームがSQLiteチームとWebAssembly版SQLiteを開発中。Webブラウザ上からのファイル書き込みで永続化も可能。Web SQL APIの代替として - Publickey
https://www.publickey1.jp/blog/22/chromesqlitewebassemblysqlitewebweb_sql_api.html >>893
別の人です。
簡単に出来るとは言ってないけど・・・。当然ジャーナル管理も必要だしファイルシステムのチェックだって必要。
だけどプロセス間のメッセージキューをちゃんと作ろうと思ったら普通に出てくる要件だよ。
特にミドルウェアとかだと必須。OS落ちたらキューの内容を保持していても意味が無い、なんてことは決して無い。
WEB開発とかしかしない人からしたら特殊に見えるのかもしれんけど・・・。
ただ、>>886が仮にそういう要件だったとして、本当にSQLiteで実装するんだとしたら、SQLiteだけでそういうジャーナルとかの管理がどうにかできるのかはよく検討しないといけないだろうね。 >>897
> OS落ちるってことはどこまで記録されてるかの保証もないしヘタしたらファイルシステムぶっ壊れてる可能性すらある
これどうすんの? >>898
そういうのトランザクション管理の基本だよ >>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 このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 3905日 23時間 13分 33秒 5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。
───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────
会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。
▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/
▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php レス数が1000を超えています。これ以上書き込みはできません。