
プログラム初心者です
phpとmysqlで簡単な掲示板を作りました
一つのテーブルでsure_idごとにスレッドをつくり、resu_idでレス番号をつくっています
そこで削除フラグがある場合にはそのレスを表示しないようにしたいのです
素人なのでこんな方法しか思い浮かばないのですがこれで大丈夫でしょうか?
5番のスレッドを全て取得し、削除フラグがない行を全て取得
SELECT * FROM bbs WHERE sure_id=5 and dll_flg=0
質問1
削除フラグはどのような立て方が良いでしょうか?0と1でしょうか?
質問2
削除フラグのカラムにもインデックスを張ったほうが速いですか?
質問3
phpでいちいちif文で判定するよりsqlで表示判定したほうが早いですよね?
よろしくお願いします
No.1ベストアンサー
- 回答日時:
質問1:
BOOLEAN型(TRUE/FLASE型)があるDBの場合はこれを
使ったほうが良いですが、mysql には無いので数値で代替
するしかありません。
0 の意味を忘れないように (0 は削除・未削除のどっちだっ
け?とならないように) 注意してください。
質問2:
検索は速くなりません。しかも登録 (INSERT/UPDATE) が
遅くなるので付けないほうがマシです。
何故 検索が速くならないのか、何故 登録が遅くなるのかに
ついては、きちんとインデックスの仕組みを学習してください。
良いシステムを作るには、きちんと仕組みを知ることが必須
です。
質問3:
たいていの場合は SQL のほうが速いでしょう。
DB関連の処理は『なるべくまとめて処理する』『不要なデータ
は取得しない』ことが処理速度アップの基本です。
回答ありがとうございます
インデックスつけるとUPDATE遅くなるのですね。勉強不足でした
sqlのほうで処理することにしました。ありがとうございました
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
複数カラム検索で、LIKE "%検索...
-
INDIRECT関数の代替方法は?
-
一部のカラムでdistinctし全て...
-
他のシートの検索
-
ホームページを作ろうと思いま...
-
カラムとコラムの使い分け
-
時間範囲が重複したレコードを...
-
DBの定義のサイズを大きくし過...
-
UNIONする際、片方テーブルしか...
-
JDBCドライバがない?
-
MySQL 改行コードを含む文字列...
-
複数キーワードを複数カラムに...
-
スペースによる絞り込み検索をS...
-
MySQLのカラムを削除したが,そ...
-
select * での表示が崩れる?
-
WHEREなどの条件が多い場合、ど...
-
varcharの比較
-
SQLServerでNULLを挿入したいです
-
文字数について
-
[MySQL]LOAD DATA INFILE一部レ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
SQL Server Management Studio...
-
インデックスについて
-
ユニーク制約とユニークインデ...
-
MySQLのKey属性「MUL」について
-
一部のカラムでdistinctし全て...
-
INDIRECT関数の代替方法は?
-
他のシートの検索
-
SELECT文で、指定カラム以外の...
-
UNIONする際、片方テーブルしか...
-
DBの定義のサイズを大きくし過...
-
ホームページを作ろうと思いま...
-
BULK INSERT時のNull許容について
-
SQLServerでNULLを挿入したいです
-
AUTO_INCREMENTに0はダメ?
-
SQLでカラムを追加し、条件に合...
-
now()かCURRENT_TIMESTAMPか
-
カラムとコラムの使い分け
-
テーブルの列数を調べたい
-
(初心者)MySQLやmaraDBで、crea...
-
[MySQL]LOAD DATA INFILE一部レ...
おすすめ情報