スレ立てるまでもない質問はここで 163匹目at TECH
スレ立てるまでもない質問はここで 163匹目 - 暇つぶし2ch305:デフォルトの名無しさん
23/01/04 14:11:13.57 hsLqwQpIM.net
SQLiteだと使いかたにもよるが普通はWALにしか書かれてないデータがあるからファイル1つだけの単純コピーだと同期できないね
書き込みのログだけ反映しろとあるから求めてるのはミラーリングじゃなくてレプリじゃないのかな

306:デフォルトの名無しさん
23/01/04 15:08:35.51 LHzXCuSX0.net
SQliteってサイズでかくなると読み書きで速度低下しそうだから
たとえばMAX500MBに手動(プログラム)で分割して記録したほうが効率よさげ

307:デフォルトの名無しさん
23/01/04 15:11:03.97 lFNs7lW+0.net
>>302
多分インプロセスのDBMSの事を言ってるんだとエスパーした
ストレージがファイルというだけなら大抵のDBMSが該当しちゃうし
で、たぶん>>305の言うようにレプリケーションの話じゃないかと
インプロセスだと現状SQLite一択(以前はSQL-Server Compact Edtionがあったけど見捨てられた)で、レプリケーションできるのはこれぐらいしか見つけられなかった(有償)
URLリンク(litesync.io)

308:デフォルトの名無しさん
23/01/04 15:15:16.30 1JQ1gS/7r.net
SQLiteはレコード数100万件を超えるとSELECTが他のRDBMSよりぶっ飛びで速くなる
更新も同時更新が発生しなければ速い

309:デフォルトの名無しさん
23/01/04 15:16:49.25 NWdIhsNV0.net
ファイル型のデータベースっていったら汎用的なDBMSじゃなくて
オールインワンなAccessとかを指すんじゃないかな

310:デフォルトの名無しさん
23/01/04 15:19:45.71 LHzXCuSX0.net
>>308
でかいほど、他との比較で早くなるなら
一ファイルではない大規模用DBをつかう必要下がらないのか?

311:デフォルトの名無しさん
23/01/04 15:44:54.96 1JQ1gS/7r.net
>>310
大規模RDBMSは同時接続での処理が速い
つまり多人数で使う場合に向いている
SQLiteは同時接続が弱すぎるから一人用
例えばメーラーのThunderbirdやAndroidでは一人で使うからSQLiteが使われている

312:デフォルトの名無しさん
23/01/04 16:56:22.34 eOxHD5pt0.net
こういうのがあったら便利だよなぁっていう何かを車輪の再発明しないために予め確実に存在しないか強力に探す技術って英語に精通するしかない?

313:デフォルトの名無しさん
23/01/04 17:52:55.70 lFNs7lW+0.net
>>308
それどんな魔法よw

314:デフォルトの名無しさん
23/01/04 18:42:42.00 tw5wqvcHd.net
今作ってるプログラムはせいぜい1000レコードの想定で言語もJavaだから素直にDerbyにした

315:デフォルトの名無しさん
23/01/04 19:19:09.13 gEBE6zIG0.net
魔法とか他のDBが不要になるとかじゃなくてどんな強みがあるか性質を説明しているだけでしょ
何事もトレードオフがある

316:デフォルトの名無しさん
23/01/04 19:38:54.10 lFNs7lW+0.net
>>315
いや
> SQLiteはレコード数100万件を超えるとSELECTが他のRDBMSよりぶっ飛びで速くなる
なんて初めて聞いたからソースあるんか?って話なんだが

317:デフォルトの名無しさん
23/01/04 19:43:00.64 492NQUrQd.net
通信が必要ないからシーケンシャルアクセスが速いのは当たり前じゃない?
処理時間の差も件数に比例するから件数が多いときに速く感じるのも当たり前だと思う

318:デフォルトの名無しさん
23/01/04 20:19:55.42 jDmYg10Gd.net
馬鹿って自分の知ってる狭い範囲で断定するから馬鹿なんだよね

319:デフォルトの名無しさん
23/01/04 20:58:43.22 WHtfJqZDM.net
.bashrc のようなカレントシェルで実行しないと意味がないスクリプトを自分で書く場合に、サブシェルとして実行されたら警告を出すことってできますか?

320:デフォルトの名無しさん
23/01/04 21:02:00.45 AvzaDUce0.net
SHLVL

321:デフォルトの名無しさん
23/01/04 21:20:26.95 oLi3mo910.net
>>317
一概に言えるもんでもないだろう。クライアント/サーバーといっても同一ノード上の通信なら
ディスクアクセスと比べたら無視していいくらい速い。

322:デフォルトの名無しさん
23/01/04 21:22:51.87 lFNs7lW+0.net
>>317
> 通信が必要ないからシーケンシャルアクセスが速いのは当たり前じゃない?
まさかと思うけど100万件のデータから100万件を抽出する話なのか?w
> 処理時間の差も件数に比例するから件数が多いときに速く感じるのも当たり前だと思う
件数に比例とか言ってる時点でお前さんわかってないだろ...

323:デフォルトの名無しさん
23/01/04 21:36:29.87 QxUfEWbZ0.net
ストアドよりインデックスが速いよ。
スレリンク(db板)
正論。

324:デフォルトの名無しさん
23/01/04 22:03:56.19 gEBE6zIG0.net
何の基準もなく「ぶっ飛びに早い」というふわっとした発言に深掘りしても
おったまげな情報は得られないだろう
正月から空虚なマウントの取り合いが繰り広げられるだけ

325:デフォルトの名無しさん
23/01/04 22:57:00.83 1JQ1gS/7r.net
>>313-324
URLリンク(i.imgur.com)

326:デフォルトの名無しさん
23/01/04 23:09:49.56 lFNs7lW+0.net
測定条件も書いてない単なる表になんの価値があるんだ?
そもそも例えばPostgresSQL 100万件で150秒とかインデックス張ってないにしても遅すぎる

327:デフォルトの名無しさん
23/01/04 23:26:14.42 1JQ1gS/7r.net
>>326
1億件のレコードから1万件/10万件/100万件を主キーで1件ずつSELECTした場合の速度

328:デフォルトの名無しさん
23/01/04 23:29:55.56 gVbSXgMqM.net
M1優勝できるレベルのネタだなw

329:デフォルトの名無しさん
23/01/04 23:37:16.27 lFNs7lW+0.net
SQLite 1万件: 0.06秒 ÷ 10,000件 = 6μs/件
これオンメモリーじゃね?
てかソースは出せないのか?

330:デフォルトの名無しさん
23/01/05 00:06:55.48 iqc5j6UOd.net
>>325
馬鹿はこんなソースを鵜呑みにするんだな
その上商用データベースはないし

331:デフォルトの名無しさん
23/01/05 00:38:18.87 HRGQlaN+r.net
>>329
SQLiteはファイルシステムのI/Oより高速
URLリンク(i.imgur.com)
>>330
商用で使われてるけど?
馬鹿は何も知らないんだな
URLリンク(i.imgur.com)
URLリンク(i.imgur.com)

332:デフォルトの名無しさん
23/01/05 01:37:59.87 sCQ59Dgt0.net
>>331
329は、"基本オンメモリで動作するSQlite"と、"通常ディスクで動作する(オンメモリもできなくはない)他DB"、
それらをそれぞれデフォかなんかわからない環境で比較してることに意味はあるの?ってことじゃないの?
両方オンメモリ(インメモリ)ならどうなるのかな?
たとえばMySQLならInsertが数十倍になった記憶はある(メモリの仕様にも依存するだろうけどね)
330は、商用データベースという言い方はちょっとズレてて、
商用ライセンスとサポートがないんじゃないのってことじゃないかな
使う案件によっては影響出るからね

333:デフォルトの名無しさん
23/01/05 01:48:13.14 iqc5j6UOd.net
>>331
馬鹿は商用データベースの意味がわからんような馬鹿か

334:デフォルトの名無しさん
23/01/05 02:03:08.48 2xtdBLfB0.net
別にケチ付けるまでもなく普通の結果じゃね
SQLiteはシンプルで排他であるがゆえにオーバーヘッドも少なく動くし
ファイル動作でもOSによるキャッシングも効きやすく(そこを割り切ったからこそのシンプルなDB)
デフォルトで理論値出やすいし

335:デフォルトの名無しさん
23/01/05 05:33:44.92 O+NRT3S+0.net
>>331
> SQLiteはファイルシステムのI/Oより高速
これはBLOBの話
こんなのは他のDBMSでも同じだぞ
>>334
インプロセスでネットワークのオーバーヘッドが無いとか他のDBMSが持ってるような権限チェックや利用ログ機能が無いとかあるから特に単純なSQLで比較するとSQLiteが圧倒的に有利であるのは間違いない
ただそれにしても6μs/件を出そうとしたらI/Oアクセスあると相当難しい
そもそも
>>308 > SQLiteはレコード数100万件を超えるとSELECTが他のRDBMSよりぶっ飛びで速くなる
って書いてたから対象レコードの話かと思ったら単なる繰り返しの回数みたいだしそもそも他のDBMSを含めてリニアに増加してるから「100万件越えたらぶっ飛びで速くなる」なんてどこから出てきたのか謎すぎる

336:デフォルトの名無しさん
23/01/05 06:58:12.29 oM1k4p980.net
SQLiteは大規模なデータベースは無理なんだよ。
その点で住み分けは出来る。
とはいえ、SQLiteで9割カバー出来るだろな。
第一推奨がSQLite。

337:デフォルトの名無しさん
23/01/05 12:01:45.56 nNkP0Ncc0.net
こんなん、条件が特殊でしょw

338:デフォルトの名無しさん
23/01/05 12:18:31.66 uXoq84mk0.net
>>336
DB自体の規模はあまり問題ではない
SQLiteが無理なのは複数の人が同時にアクセスするようなDBで、その時点でDBのユースケースの9割からは外れる

339:デフォルトの名無しさん
23/01/05 13:09:47.11 HRGQlaN+r.net
>>335
少しは自分で調べたらどうか
でお前はSQLiteが速いと困るのか?
URLリンク(i.imgur.com)
URLリンク(i.imgur.com)
URLリンク(i.imgur.com)
URLリンク(i.imgur.com)
URLリンク(i.imgur.com)

340:デフォルトの名無しさん
23/01/05 13:21:32.96 jGVXI03l0.net
ファイル型のデータベースって言ったらユニケージやろ
URLリンク(www.usp-lab.com)
ロールバックはシンボリックリンクを手作業で張り替えればいいから安全

341:デフォルトの名無しさん
23/01/05 13:24:28.43 /79BsoYR0.net
情報はありがたいが出典は書いてほしいな。

342:デフォルトの名無しさん
23/01/05 14:39:37.45 O+NRT3S+0.net
>>339
1万件のselectで0.11sだったのに5,000件だと1.1sとかえらく遅くなったなw
そもそもSQLite 2.7.6って20年近く前のリリースやぞ...
URLリンク(www.sqlite.org)
まあこの頃のPostgresSQLは遅いので有名だったからこんなもんじゃね?

343:デフォルトの名無しさん
23/01/05 14:50:56.99 vkZCL/K50.net
ウェイトフリー、ロックフリーのキューにいれてシリアル化? 、直列化? すれば
多重アクセスでもSQliteでいいか?

344:デフォルトの名無しさん
23/01/05 14:53:54.58 vkZCL/K50.net
Lock-freeとWait-freeアルゴリズム 出典: フリー百科事典『ウィキペディア(Wikipedia)』
Lock-freeとWait-freeアルゴリズムとは、共有データにロックをかけてアクセスを防ぐアルゴリズムとは違い、複数のスレッドが同時並行的に、ある対象データを壊すことなしに読み書きすることを可能にするアルゴリズムである。
Lock-free とはスレッドがロックしないことを意味しており、全てのステップにおいてシステムが必ず進行する。
Wait-free とは、他のスレッドの動作に関係なく、スレッドがいかなる操作も有限のステップで操作を完了させられることを指す。
Wait-free なアルゴリズムは Lock-free である。
銀行預金の例
例えば、銀行口座への預金プログラムを作るとする。それぞれのスレッドをATMとする。
ロック方式のやり方の場合、1つ目のATMが預金をするとき、ほかのATMが同時に預金残高を変更しないよう、ロックをかける。
さもないと、同時に処理してしまうと、最終的な預金残高に不整合が起きうる。
この処理を Lock-free にするには、すべての預入要求を管理するスレッドを作り、そこに、Wait-free のキューを作り、
ATMはそのキューに対して非同期にロックをかけることなく預入要求を入れ、預入要求を管理するスレッドはキューから順次取り出し、預金残高を更新する。
このやり方の方が、わざわざ Lock-free の預金アルゴリズムを作るよりも、プログラミングは楽である。
さらに、この手法は、キューがWait-freeであるので、Lock-free なだけでなく、Wait-freeでもある。
預金残高の書き換え処理をn並列で行いたいなら、n個Wait-freeキューを作り、口座番号をnで割った余りでどのキューに入れるか決めるという方法で対応できる。

345:デフォルトの名無しさん
23/01/06 00:44:53.18 Hz2m3Wai0.net
sndvol.exeやeartrumpetなどのアプリごとの音量調整アプリはどうやって実現させているのでしょうか
アプリごとに音量調整できるWindowsAPIがあるのですか?


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch