PHP + MySQL
■ このスレッドは過去ログ倉庫に格納されています
0001ECY
NGNG0002echo
NGNG0003初期不良
NGNG両方インストール済んでこれから試そうってところなんだけど。
0004初期不良
NGNG試してみたんですけど、重くて掲示板には向いてないと思ったので...
0005名無しさん@お腹いっぱい。
NGNG厨房くさくてかなわん。
0006名無しさん@お腹いっぱい。
NGNG0007union使えないの?
NGNG0008名無しさん
NGNG女の子と話していて、他の女の話をすると異常に機嫌が悪くなることがある。
「なんで他の女の話を持ち出すの?」とかって。
それと同じ感じで、PostgreSQL の話をしている時に、Oracle などとの比較を
持ち出されると過剰反応する女々しい人が多いので気をつけましょう。
0009名無しさん@お腹いっぱい。
NGNGDBの話をしているのに、なんで女の話を持ち出すの?
0011名無しさん@お腹いっぱい。
NGNG陰部陰部陰部陰部陰部陰部●部陰部陰部陰部陰部陰部陰部
陰部陰部陰部陰部陰部陰部●部陰部陰部陰部陰部陰部陰部
陰部陰●陰部陰部陰部陰部●部陰部陰部陰部陰●陰部陰部
陰部陰部●部陰部陰●●●●●●●陰部陰部●部陰部陰部
陰部陰部陰●陰●●部陰部●部陰部●●陰●陰部陰部陰部
陰部陰部陰部●部陰部陰部●部陰部陰●陰部陰部陰部陰部
陰部陰部陰●陰部陰部陰部●部陰部陰部●部陰部陰部陰部
陰部陰部陰●陰部陰部●●●●●部陰部陰●陰部陰部陰部
陰部陰部●部陰部陰●陰部●部陰●陰部陰部●部陰部陰部
陰部陰部●部陰部●部陰部●部陰部●部陰部●部陰部陰部
陰部陰部●部陰●陰部陰部●部陰部陰●陰部●部陰部陰部
陰部陰●陰部陰●陰部陰部●部陰部陰●陰部陰●●●陰部
陰●●●陰部陰●陰部陰部●部陰部陰●陰部陰●陰部陰部
陰部陰部●部陰●陰部陰部●部陰部陰●部陰●部陰部陰部
陰部陰部●部陰部●部陰部●部陰部●陰部陰●部陰部陰部
陰部陰部●部陰部陰●陰部●部陰●部陰部陰●部陰部陰部
陰部陰部陰●陰部陰部●●●●●陰部陰部●陰部陰部陰部
陰部陰部陰●陰部陰部陰部●部陰部陰部陰●陰部陰部陰部
陰部陰部陰部●部陰部陰部●部陰部陰部●部陰部陰部陰部
陰部陰部陰●陰●●部陰部●部陰部●●陰●陰部陰部陰部
陰部陰部●部陰部陰●●●●●●●陰部陰部●部陰部陰部
陰部陰●陰部陰部陰部陰部●部陰部陰部陰部陰●陰部陰部
陰部陰部陰部陰部陰部陰部●部陰部陰部陰部陰部陰部陰部
陰部陰部陰部陰部陰部陰部●部陰部陰部陰部陰部陰部陰部
陰部陰部陰部陰部陰部陰部陰部陰部陰部陰部陰部陰部陰部
0012名無しさん@お腹いっぱい。
NGNGhttp://www.mysql.gr.jp/
0013名無しさん@お蝮いっぱい。
NGNG買ったけど、なんかいまひとつでした。
「詳しくはマニュアル参照しろ」ばかりなんだもん。
だから今はマニュアル見てます。
0014名無しさん
NGNG多くのデータを検索したい時にはベストの選択だが、多くのユーザーが
一度に登録を行うような場合は、他のRDBMSが向いてる」とありました。
2chのような掲示板をMySQLで作るのは向いてないのでしょうか?
0016名無しさん
NGNG0017名無しさん@お腹いっぱい。
NGNGあとは考えて。
0018名無しさん@お腹いっぱい。
NGNG変数のサイズをチェックするところでこけるんだけど、
対処法知らない?
ちなみに、同じ現象がIRIXとFreeBSDで発生した。
0019初期不良
NGNGhttp://www.asakawa.ne.jp/doc/php/ja/sjis/ref.mysql.html
にも mysql_dbname() が載ってないの?
無いわけないだろうと思って検索かけてみて見つけたけど...
mysql_db_name() だったりして、まあどっちでも動くわけだけど
この辺ってどうなってるの?
0020電動ナナシ
NGNG>>19
本家のページに出てないから仕方が無いんじゃない?
http://www.php.net/manual/en/ref.mysql.php
0021名無しさん@お腹いっぱい。
NGNGわかりやすい一例ね。普通はさ
1.ロック
2.更新
3.アンロック
とやるわけでしょ。MySQLの場合は、このロックしてから放すまでの時間を最
小限に抑えないとダメ。あと、極力ロックしない努力も必要。
とりあえずロックしておけって方針だと、簡単に使い物にならなくなるよ
MySQLにはlast_insert_idとかreplaceとか、あるいはget_lockとかロック
しないための機能がいっぱいあるので、考えよう
002216
NGNGこれまで明示的?なロックは使ったことがないです。
持ってる本には書いてなかったし。
last_insert_id、replace、get_lock を調べてみます。
002321
NGNGおーい。だめじゃーん
MySQLはフツーのデータベースと違って明示的にロックしないと何もロックして
くれないよー
俺がさっき書いたget_lockとかは中級以上の知識だけれど、基本はちゃんと抑え
ないとダメ
基本はあくまで、更新されちゃ困るレコードはロックすることだよ。
MySQLの実際のロックはlock tablesで行うので、こいつを勉強しよう。
get_lockとは名前は似てても全然違うので注意。
それで、ロック中の処理をできるだけ短くするように心がけよう。よほど
アクセスの多い場合でなければ、これで対応できるはず。
002416
NGNGこれまで、insert や update などがそれほどないものしか作った
ことがなかったので、偶然うまくいってただけだったようですね。
このままいってたら今後やばかったです。
勉強になりました。
0025名無しさん@お腹いっぱい。
NGNG>俺がさっき書いたget_lockとかは中級以上の知識だけれど、基本はちゃんと抑え
>ないとダメ
別に煽るわけではないが、
ロックの知識なんて、基礎中の基礎だと思うが...
0026初期不良
NGNGこれが問題なのか?俺も MySQL 使い始めなり
0027初期不良
NGNGhttp://www.softagency.co.jp/mysql/Manual/html/manual.ja_Performance.html#Table_locking
002816
NGNG本に載ってたサンプルとかしか見てなかったわけです。
で、ロックなんて書いてなかったので、MySQLがロックしてくれるんだ
と勝手に思ってました。
とりあえず、lock tables xxx write;と
unlock tables;入れて確認してます。
間にsleep()してテストしてますが、いいんですよね。
私もマニュアルちゃんと読もうかと思います。
ためになる煽りは歓迎です。よろしゅう。
002921
NGNGそうなんだけれど、それを知らずに作っちまう奴もいる。俺が前に
あるサイトの運用を引き継いだときに、まるでロックのこと意識し
てないつくりになってて、データの不整合がおきまくりで、空いた
口が塞がらなかった。
>>26
問題としては、テーブルごとロックしか出来ないっていうのが第一
の問題。一人のユーザしか更新できないでしょ。
第二の問題がタイムアウトできないことだね。
mysql_pconnect()で接続して、ロックしている間に落ちるよう
なプログラムを書くとロックしっぱなし・・・これはPHP3の話だ
けどね。PHP4は使ってないのでわかんない
0030電動ナナシ
NGNGロックがタイムアウトしないのか・・・そりゃひどいねえ。
マニュアル読むと、
・接続が閉じられるか、当該プロセスが Lock を発行しない限り Lock は有効
・他のプロセスの Lock 要求はタイムアウトなしで待たされる
みたいだね。ううむ。
プログラムが落ちて httpd も一緒に落ちていれば問題ないけど、そうじゃない
場合(エラーによる異常終了)とかは問題だよねえ。
当面の回避策としては、
・pConnect は使わない
・適当な(アプリケーションから使わない)テーブルをいくつか用意して、
スクリプトの先頭で lock/unlock する(そうすれば直前のロックが解除される)
# httpd のプロセス数だけテーブルを用意して、互いに lock するテーブルが
重ならないようにランダムに割り当てる
という感じになるのかな。
0031名無しさん@お腹いっぱい。
NGNGただ、こいつは別にデータそのものをロックするわけじゃないという曲者
「こういうデータを更新するときには、こういう文字列でget_lock()を
かける」とかって、明確なルールを作る。
頻繁にかかる更新はget_lock()で、そうでない更新はlock tablesでなん
ていうのも面白いと思う
0032名無しさん
NGNG例えばどのようなものがありますか?
サイトの例などあります?
0033名無しさん@お腹いっぱい。
NGNGこれの本当の意味がわかる奴は少数だと思うけども、
わからない奴は1週間くらいじっくり考えてみな。
それでもわからない奴は、オラクル使った方がいいよ。金かかるけど。
0034名無しさん@お腹いっぱい。
NGNG0035名無しさん@お腹いっぱい。
NGNG■ このスレッドは過去ログ倉庫に格納されています