CSVファイルは検索が速いって聞きました
ではなぜソートが遅いのでしょうか?
探検
10GBのCSVファイルのソートが遅いのはなぜですか?
2023/06/12(月) 21:20:45.91ID:F1HJC183
30デフォルトの名無しさん
2023/09/12(火) 12:29:39.47ID:QOX8wfhQ 何行何列か示せと
31デフォルトの名無しさん
2023/09/12(火) 12:38:34.37ID:A3YXlMvb >>30
1億行、125列
1億行、125列
2023/09/12(火) 12:46:05.28ID:DJD1APYm
こんな頭の悪いスレ上げるのはなぜですか?
33デフォルトの名無しさん
2023/09/12(火) 14:42:44.77ID:A3YXlMvb なぜ下げるんだい?
2023/09/12(火) 14:59:33.38ID:BQ9Iu4K/
なんで10GBもあるデータをCSVで管理しようと思ったんだろうな
35デフォルトの名無しさん
2023/09/12(火) 17:11:08.62ID:zmLL4dpk 10GBもあるデータをCSVにしようとした訳ではなく
何も考えずにCSVで管理してたらいつの間にか10GBになったんだろう
何も考えずにCSVで管理してたらいつの間にか10GBになったんだろう
2023/09/12(火) 18:09:26.28ID:BQ9Iu4K/
そっかw
37デフォルトの名無しさん
2023/09/14(木) 15:11:27.86ID:Ur1UGoF938デフォルトの名無しさん
2023/09/15(金) 19:50:24.13ID:V4ggyvBY 巨大なデータをSQLiteで処理するためのメモ
https://fanぶろぐs.jp/scripts/archive/11/0
https://fanぶろぐs.jp/scripts/archive/11/0
2023/09/15(金) 20:30:51.52ID:mLRMgWkC
やさいい
2023/09/27(水) 20:16:21.16ID:PKUrAitV
まず各ブロック当たり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 で作ったのですが、なぜかデータがゼロに
なってしまうバグが出て作るのを止めてしまいました。ちゃんちゃん。駄目じゃん俺。
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.45ID:ja1//dn8 だいたいデータの入れ替えに時間が掛かるんだよな
メディアがHDDとかだと尚更
普通はインデックスで実データを間接参照させるんだが
まあ、やって無いんだろうなぁ
メディアがHDDとかだと尚更
普通はインデックスで実データを間接参照させるんだが
まあ、やって無いんだろうなぁ
42デフォルトの名無しさん
2023/10/05(木) 11:43:25.54ID:AvBTKCCq 速度を優先するなら固定長CSVの採用をオススメする
各行へのランダムシークが出来るし並び替えに必要な行の入れ替えも可能になる
最近のutf-8などを使いたい場合は文字数での管理が難しくなるがあくまでもストレージ上でのサイズを基準にして
クラスタサイズも考慮し列サイズを決めていこう
検索性能を上げるには外部インデックスを作るしかないだろう
ファイルサイズは100倍ぐらいに増えるかもしれないが単純なファイルキャッシュだけで下手なDBでは敵わない速度が出せるだろう
各行へのランダムシークが出来るし並び替えに必要な行の入れ替えも可能になる
最近のutf-8などを使いたい場合は文字数での管理が難しくなるがあくまでもストレージ上でのサイズを基準にして
クラスタサイズも考慮し列サイズを決めていこう
検索性能を上げるには外部インデックスを作るしかないだろう
ファイルサイズは100倍ぐらいに増えるかもしれないが単純なファイルキャッシュだけで下手なDBでは敵わない速度が出せるだろう
2023/10/08(日) 19:41:45.47ID:Unktq8Si
>>31
125列のレコードが1億行あったらカンマだけで10GB超えるんだが
125列のレコードが1億行あったらカンマだけで10GB超えるんだが
2023/10/12(木) 21:43:44.24ID:5lP2cmIF
ひとつが100MBくらいのファイルになるように
ディレクトリ構造でB木をつくって(アンバランスでもOK)
個々にソートしたものを最後に結合
ディレクトリ構造でB木をつくって(アンバランスでもOK)
個々にソートしたものを最後に結合
2024/11/08(金) 00:13:58.03ID:0/QV09gu
csvだから遅いとかはない、デシリアライズして云々するよりそのままテキスト(あるいはその部分文字列、フィールド)として比較するならむしろ有利
単にサイズの問題、メモリより十分小さいサイズに分割(今どきなら数GBなんで100MBあたり)して個別にソート、マージ
むしろテキストにシリアライズされたデータにおいて、最も実用的な類のフォーマットに入る
単にサイズの問題、メモリより十分小さいサイズに分割(今どきなら数GBなんで100MBあたり)して個別にソート、マージ
むしろテキストにシリアライズされたデータにおいて、最も実用的な類のフォーマットに入る
46デフォルトの名無しさん
2025/05/10(土) 00:23:13.60ID:Fj2J3+nY とすと
2025/05/10(土) 14:35:35.59ID:7IHH6CUB
クソスレかとおもったら想像以上に真面目に考察してるスレだったw
2025/05/10(土) 20:02:05.08ID:ij0zz7My
マジレスはあるかもしれんが別に真面目な考察はないだろ
実は良スレだったんだと雰囲気で既成事実にするな
実は良スレだったんだと雰囲気で既成事実にするな
2025/05/12(月) 11:20:32.62ID:Zw0HuL6G
DBをエクスポートしたら数GB出てきたとか普通だけど
レスを投稿する
ニュース
- 中国・ロシア両軍の爆撃機が東京方面へ向かう「異例のルート」を共同飛行…核も搭載可能、連携して威嚇か ★2 [ぐれ★]
- 中国・ロシア両軍の爆撃機が東京方面へ向かう「異例のルート」を共同飛行…核も搭載可能、連携して威嚇か ★3 [ぐれ★]
- 京都のホテル大幅値下げ 訪日中国人客、年1000万人目前で急ブレーキ [蚤の市★]
- 「中国人の訪日熱は冷めた」 人気旅行先から日本外れる 14日で自粛呼びかけ1カ月 ★3 [蚤の市★]
- 現場からは悲鳴、母親からは「高い」「性犯罪が怖い」の声も…高市総理がどうしても実現したい政策「ベビーシッターの利用促進」 [ぐれ★]
- 「1800万円の売り上げゼロに…」中国インバウンドに特化の宿の今 ★3 [蚤の市★]
- 【悲報】ユニクロのダウンを洗った結果wwwwwwwwwwwwwwwwwwww [802034645]
- 【安倍の禍】円安、日本を苦しめる!国民生活だけでなく、経済界からも行き過ぎだとの声。利上げ観測も円安傾向 [219241683]
- 議員定数削減法案、廃案へwmwmwmmwmwmwmw [834922174]
- 【画像】1流スタイリスト「12月に冬服買う人、馬鹿ですw」←1週間後www
- 【高市悲報】NHKニュース「発狂している中国に対して、日本は至って冷静」😳 [762037879]
- 【悲報】男「セックスしなくなったら彼女のことだんだん許せなくなったわ」→炎上wwwwwwwwwwwwwwwwwwww [802034645]
