[表示 : 全て 最新50 1-99 101- 2chのread.cgiへ]
Update time : 12/28 01:11 / Filesize : 35 KB / Number-of Response : 118
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

Androidプログラミング質問スレ Part28



90 名前:0 ◆SeZffd6X/Q mailto:sage [2012/12/27(木) 03:11:13.50 ]
>>74
Androidでは実験したことないのでWindowsでの体験でいいだろうか?

[ テキストファイル保存型の場合 ]
次のように1行のデータサイズ合計が24byteで固定されている場合
|No[4byte]|名前[20byte]|メモ[20byte]|死亡フラグ[1byte]|
10000行目のデータがほしい時はファイルシークを24(byte)×10000(行)すれば
一瞬にして目的のデータにたどり着けるので問題はありませんね?

今度は1行のデータサイズが「名前」「メモ」のデータは文字数が時と場合によってランダムでかわり
決定できないようなデータの場合
|No[4byte]|名前[不確定byte]|メモ[不確定byte]|死亡フラグ[1byte]|
10000行目のデータがほしい時は、基本的にforループを10000回まわして探しにいかないとダメになります
(「カーソルをまわすやりかた」とか言われてます)

SQLの場合、後者も前者と同じように扱え、基本的に1秒以内に完了します。
またNo0〜No10000までの死亡フラグを全て「生存(false)」から「死亡(true)」に変更したくなったとします。
これをカーソルまわしでやると、やはりfor10000ループが必要になりますが
SQLの場合「update 死亡=true where 死亡=false」のようなコマンド1行で(例えです)行え、やはり1秒以内に完了します。

速度面の違いのほかにも、SQLにはテキストファイルより優れた機能がたくさんあります。
例えば、アプリでプロフィール変更機能などを実現しようとした時に、
50箇所くらいデータを変更したが、やっぱり取り消したいという事がありえます。
テキスト保存型だと、この機能を実装するのは煩わしいです
保存用テキストの他に作業用テキスト(一時ファイル)を用意し、
最終決定字に一時ファイルの内容を本ファイルへ一気に保存していく。
SQLではキャンセルコマンド1行でこれを実現できます。ロールバック機能といいます。
その1つの「ロールバック機能」は、
たとえば、






[ 続きを読む ] / [ 携帯版 ]

全部読む 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧](*・∀・)<35KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef