10GBのCSVファイルのソートが遅いのはなぜですか? (49レス)
上下前次1-新
1(5): 2023/06/12(月) 21:20:45.91 ID:F1HJC183(1) AAS
CSVファイルは検索が速いって聞きました
ではなぜソートが遅いのでしょうか?
2: 2023/06/13(火) 08:52:56.97 ID:JBnp9ago(1) AAS
べ、べつに遅くないし!
3: 2023/06/13(火) 09:49:32.67 ID:Xu7LyXF8(1) AAS
>>1君がバカなのは何故ですか
って言われて答えられないでしょうそれと同じ
4: 2023/06/13(火) 09:53:59.11 ID:meEyuUg2(1) AAS
マジレスしとくと
スレタイの "10GB" と >>1 の質問が無関係だな
5: 2023/06/13(火) 13:36:34.95 ID:4HUnX0Fj(1) AAS
さっき霊魂を見たんですが、どうしたらいいですか
6: 2023/06/13(火) 16:18:52.30 ID:u7AmJNUj(1) AAS
「…見なかったことにしといてやる!」と宣言すればおけ
7: 2023/06/13(火) 19:37:20.82 ID:ixSRP7mF(1) AAS
よかろう、ならばビットマップファイルだ
8: 2023/06/22(木) 06:41:18.88 ID:k/qBouFf(1) AAS
>>1
それは ヒ・ミ・ツ。
フフフッ…
9: 2023/06/29(木) 13:51:47.41 ID:IO1TL2jD(1) AAS
10GBだから
10: 2023/06/30(金) 03:16:09.95 ID:KO9roK1Y(1) AAS
昭∞!!!!
大∞!!!!!
昇∞!!!!!!
漠∞!!!!!!!
11(1): 2023/08/09(水) 07:21:27.86 ID:Bb1AJAu+(1) AAS
>>1
速いと感じるか遅いと感じるかは個人の感覚の問題
何秒なら速いのか、何と比較して速いのか
他人が遅いというから遅いとか小学生かよ
12: 2023/08/09(水) 07:46:15.85 ID:Aj0Whal0(1/2) AAS
>>11
じゃあ君は速いとでも?w
13: 2023/08/09(水) 07:47:25.44 ID:Aj0Whal0(2/2) AAS
CSVのソートが遅いのは社会的共同体の中で自然に共有されうる普遍的事実である
14: 2023/08/09(水) 10:35:23.16 ID:ZMTba8c6(1) AAS
まぁRDBMS使った方がいいわな
15: 2023/08/09(水) 11:06:02.05 ID:qEKEd4/l(1) AAS
何をつかっても遅いものは遅いw
16: 2023/08/09(水) 15:27:00.04 ID:a25ApkGr(1) AAS
実装次第で遅くなりそうなケースだな
フレームワークとコピペだけで戦ってきたやつには荷が重いだろう
17: 2023/08/09(水) 16:22:02.52 ID:coMLMuQp(1) AAS
jsonやmessagepackよりは速いかも知れないな
18(1): 2023/08/10(木) 00:02:20.56 ID:gjwqjVE1(1) AAS
10GBはファイルの大きさであって、データの件数ではないんだよな
19: 2023/08/10(木) 01:18:52.99 ID:qMn8aig+(1) AAS
10GB のデータをソートするには、
並べ替えた途中経過のデータも持っておく必要があるから、
100GBぐらいのメモリが必要なのでは?
メモリが少ないと、途中経過のデータをハードディスクに保存して、
メモリを空けないといけない。スワップ
20(1): 2023/08/10(木) 01:20:23.88 ID:lIBN6+0k(1) AAS
>>18
レコード数を3とする、ソートせよ
21: 2023/08/10(木) 02:07:49.13 ID:ljCEt4I+(1) AAS
ソートのキーだけでいい
22: 2023/08/10(木) 10:55:32.60 ID:AypbHuiV(1) AAS
メモリーに乗りそうな大きさに分割してソートして
それをマージソートするのが一番早いんじゃね?
23: 2023/08/10(木) 11:29:41.03 ID:YYBOmFjO(1/2) AAS
>>20
レコード数が1でソートの必要がないかも知れない。
24: 2023/08/10(木) 11:33:16.87 ID:YYBOmFjO(2/2) AAS
>>1
検索早くないのでは?要するにただのテキストの塊なので grep コマンドとか使って検索できるってだけのことで、その状態ではインデックスなしの全検索だから遅くなると思う。
25: 2023/08/10(木) 20:54:16.43 ID:TWiH3Zx3(1) AAS
10GBのファイルを書き換えながらソートしているのかな?
26: 2023/08/13(日) 12:14:40.57 ID:mxfdwtiA(1) AAS
Diskのデフラグ並みだな
27: 2023/08/16(水) 10:29:29.77 ID:g5j2pEtW(1) AAS
ゲッ!!(/||| ̄▽)y-ξ⌒◇ヾ( ̄  ̄;)ジュッ
28: 2023/08/27(日) 20:18:09.89 ID:m39XqcII(1) AAS
( Д ) ゚ ゚
29: 2023/09/01(金) 20:23:04.85 ID:MSzaVfqT(1) AAS
どないやねん、意味がわからん
30(1): 2023/09/12(火) 12:29:39.47 ID:QOX8wfhQ(1) AAS
何行何列か示せと
31(2): 2023/09/12(火) 12:38:34.37 ID:A3YXlMvb(1/2) AAS
>>30
1億行、125列
32: 2023/09/12(火) 12:46:05.28 ID:DJD1APYm(1) AAS
こんな頭の悪いスレ上げるのはなぜですか?
33: 2023/09/12(火) 14:42:44.77 ID:A3YXlMvb(2/2) AAS
なぜ下げるんだい?
34: 2023/09/12(火) 14:59:33.38 ID:BQ9Iu4K/(1/2) AAS
なんで10GBもあるデータをCSVで管理しようと思ったんだろうな
35: 2023/09/12(火) 17:11:08.62 ID:zmLL4dpk(1) AAS
10GBもあるデータをCSVにしようとした訳ではなく
何も考えずにCSVで管理してたらいつの間にか10GBになったんだろう
36: 2023/09/12(火) 18:09:26.28 ID:BQ9Iu4K/(2/2) AAS
そっかw
37: 2023/09/14(木) 15:11:27.86 ID:Ur1UGoF9(1) AAS
>>31
俺だったらなんでも良いからまずRDBに入れちゃうかも。
内容にもよるだろうが、とりあえずSQLiteとかな。
38: 2023/09/15(金) 19:50:24.13 ID:V4ggyvBY(1) AAS
巨大なデータをSQLiteで処理するためのメモ
外部リンク:fanぶろぐs.jp/scripts/archive/11/0
39: 2023/09/15(金) 20:30:51.52 ID:mLRMgWkC(1) AAS
やさいい
40: 2023/09/27(水) 20:16:21.16 ID:PKUrAitV(1) AAS
まず各ブロック当たり1000行とかに分ける。ブロック単位でソートする。
1.ブロックA/B を連結してAB間でソート。 B=全体の数/2
2.ブロックA+1, B+1 で連結してソート
3. ブロックA+全体の数/2- 1(前半最後まで)、ブロックB+前半最後までを連結してソート
4.今度は全体の前半で1-3 風にブロックソート。後半〜最後までで1-3 風にブロックソート
5. 前半〜前半+3/4 でブロックソート、前半+2/4〜前半+4/4 でブロックソート、
......
・・・・
ってのを大昔 BASIC で作ったのですが、なぜかデータがゼロに
なってしまうバグが出て作るのを止めてしまいました。ちゃんちゃん。駄目じゃん俺。
41: 2023/10/04(水) 21:29:03.45 ID:ja1//dn8(1) AAS
だいたいデータの入れ替えに時間が掛かるんだよな
メディアがHDDとかだと尚更
普通はインデックスで実データを間接参照させるんだが
まあ、やって無いんだろうなぁ
42: 2023/10/05(木) 11:43:25.54 ID:AvBTKCCq(1) AAS
速度を優先するなら固定長CSVの採用をオススメする
各行へのランダムシークが出来るし並び替えに必要な行の入れ替えも可能になる
最近のutf-8などを使いたい場合は文字数での管理が難しくなるがあくまでもストレージ上でのサイズを基準にして
クラスタサイズも考慮し列サイズを決めていこう
検索性能を上げるには外部インデックスを作るしかないだろう
ファイルサイズは100倍ぐらいに増えるかもしれないが単純なファイルキャッシュだけで下手なDBでは敵わない速度が出せるだろう
43: 2023/10/08(日) 19:41:45.47 ID:Unktq8Si(1) AAS
>>31
125列のレコードが1億行あったらカンマだけで10GB超えるんだが
44: 2023/10/12(木) 21:43:44.24 ID:5lP2cmIF(1) AAS
ひとつが100MBくらいのファイルになるように
ディレクトリ構造でB木をつくって(アンバランスでもOK)
個々にソートしたものを最後に結合
45: 2024/11/08(金) 00:13:58.03 ID:0/QV09gu(1) AAS
csvだから遅いとかはない、デシリアライズして云々するよりそのままテキスト(あるいはその部分文字列、フィールド)として比較するならむしろ有利
単にサイズの問題、メモリより十分小さいサイズに分割(今どきなら数GBなんで100MBあたり)して個別にソート、マージ
むしろテキストにシリアライズされたデータにおいて、最も実用的な類のフォーマットに入る
46: 2025/05/10(土) 00:23:13.60 ID:Fj2J3+nY(1) AAS
とすと
47: 2025/05/10(土) 14:35:35.59 ID:7IHH6CUB(1) AAS
クソスレかとおもったら想像以上に真面目に考察してるスレだったw
48: 2025/05/10(土) 20:02:05.08 ID:ij0zz7My(1) AAS
マジレスはあるかもしれんが別に真面目な考察はないだろ
実は良スレだったんだと雰囲気で既成事実にするな
49: 2025/05/12(月) 11:20:32.62 ID:Zw0HuL6G(1) AAS
DBをエクスポートしたら数GB出てきたとか普通だけど
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.285s*