のくす牧場
コンテンツ
牧場内検索
カウンタ
総計:127,062,297人
昨日:no data人
今日:
最近の注目
人気の最安値情報

    私的良スレ書庫

    不明な単語は2ch用語を / 要望・削除依頼は掲示板へ。不適切な画像報告もこちらへどうぞ。 / 管理情報はtwitter
    ログインするとレス評価できます。 登録ユーザには一部の画像が表示されますので、問題のある画像や記述を含むレスに「禁」ボタンを押してください。

    元スレ【この先一体】MySQL 総合 Part15【どうなるの】

    mysql スレッド一覧へ / mysql とは? / 携帯版 / dat(gz)で取得 / トップメニュー
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。
    レスフィルター : (試験中)
    ←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitter
    451 : NAME IS - 2009/07/13(月) 23:54:48 ID:pM3FPDeT (-17,-30,-227)
    MySQLの文字コードの事なんですが『\(全角のバックスラッシュ)』の表示が正しくできません。

    EUCのサイトのフォームからMySQLに入れ、
    これをEUCで取り出すと半角の\になってしまいます。
    MySQLのデフォルト文字コードはUTF8で、UTF8で取り出しても同様です。
    ただコマンドプロンプト上でSJISで取り出した時はちゃんとバックスラッシュになるので、これをEUCでバックスラッシュにできないですか?

    入出力時はちゃんとset names ujisは使ってますし、入れるときもエスケープ処理してます。
    453 : NAME IS - 2009/07/14(火) 06:57:35 ID:??? (+120,+29,-9)
    >>451-452
    ここの住人はプログラムに関してはド素人なので他で聞いた方がいいと思います。
    454 : NAME IS - 2009/07/14(火) 08:30:37 ID:??? (+30,+29,-25)
    アップロードファイルのテーブルを作って、
    日記のID, パスとかにすれば、
    1日1ファイルじゃなくても大丈夫だぞ。

    そのテーブルに、特定の日記に紐付くレコードがあれば
    アップロードされたファイルがあるってことになる。
    456 : NAME IS - 2009/07/14(火) 12:07:15 ID:??? (+103,+29,-10)
    >>453
    マジで?プログラム使わずにMySQLだけだと出来る事が限られない?
    457 : NAME IS - 2009/07/14(火) 13:17:51 ID:??? (+71,+29,-5)
    >>456
    データ出し入れするだけなら初級程度のプログラムで十分ですから。
    458 : NAME IS - 2009/07/14(火) 14:51:58 ID:??? (+55,+27,-16)
    MySQLが5.1になったらしいからインストールしてみたらイルカの写真が入ってただけだったわ。
    460 : 451 - 2009/07/14(火) 16:40:28 ID:??? (+3,-30,+0)
    さらに実験してみました。

    UTF8のページでpost → set names utf8 → UTF8のDBに格納
    select → set names utf8 → UTF8のページでprint

    ↑上記においても\が\に変換される事はありませんでした。
    文字コードが同じだから当然といえば当然ですが、
    SJISとutf8、SJISとujisとの変換も問題ありませんでした。

    よってこれはutf8とEUCの間における変換のバグなのでは?
    バグでないとしても利便性が悪いので改善してほしいです。
    この様な要望はどこに出せばいいのでしょうか?

    参考までに
    UTF8のページでpost → set names utf8 → UTF8のDBに格納
    select → set names ujis → EUCのページでprint
    だと\は?になりました。

    それ以外の文字は全く問題ありませんので普段DBに\を入れない人は気が付かないのではないですか?
    試しに自分のDBに\をぶち込んでみて下さい。

    ※使用したDBは5.0と5.1です。
    461 : NAME IS - 2009/07/14(火) 18:18:44 ID:??? (+57,+29,-20)
    相変わらずバグだらけだなww
    遠慮無くポスグレ使えよ
    462 : NAME IS - 2009/07/14(火) 19:01:33 ID:??? (+52,+29,-2)
    確かにポストグレはバグ少ないよな
    463 : NAME IS - 2009/07/14(火) 19:26:41 ID:??? (+57,+29,-21)
    なんで PostgreSQL 人気がないのか分からない。
    速度も MySQL に勝つくらいになったし、いい本もあるし。
    464 : NAME IS - 2009/07/14(火) 20:35:58 ID:??? (+57,+29,-34)
    っていうかポストグレだってきっと潜在バグあるだろーか。
    mysqlだけが悪いように書くなや。
    465 : NAME IS - 2009/07/14(火) 21:00:15 ID:??? (+52,+29,-2)
    お金払えばサポートしてくれるよw
    466 : NAME IS - 2009/07/14(火) 21:00:33 ID:??? (+52,+29,-5)
    わかったからウンコグレ厨は氏ねよ。
    467 : NAME IS - 2009/07/14(火) 21:10:18 ID:??? (+74,+29,-9)
    >>453
    文字コードの話をプログラミングだと思い込むようなド素人はそんなにいないから安心しれ。
    468 : NAME IS - 2009/07/14(火) 21:45:55 ID:??? (+62,+29,-67)
    これWindowsの話だよね?
    俺もさっきやってみたら確かに同じ現象が出たw
    バグかどうか知らんがユーザーの会のQ&Aにも無い事象だから
    今まで誰も気が付かなかったんだろうねw
    多分MySQL側がWindowsに配慮して文字コードを変える時にわざわざ\にしてるんだと思うけど。
    469 : NAME IS - 2009/07/14(火) 22:49:18 ID:??? (+1,-21,-14)
    MYSQL撃沈決定!
    471 : NAME IS - 2009/07/14(火) 23:17:54 ID:??? (-18,-4,+0)
    ↑アホ
    473 : NAME IS - 2009/07/14(火) 23:32:18 ID:??? (+0,-11,+0)
    ↑アホ死ね
    475 : NAME IS - 2009/07/14(火) 23:34:18 ID:f5HzR+ae (-20,+29,-3)
    >>473
    死なす前にアドバイスを。。。
    476 : NAME IS - 2009/07/14(火) 23:51:35 ID:??? (-24,-9,+0)
    ↑氏ねボケ
    478 : NAME IS - 2009/07/15(水) 00:32:10 ID:??? (+2,-29,-50)
    >>451
    その場合EUC-JPとしてujisじゃなくてeucjpmsを使う。
    MySQLとしては4年前に対策済み。

    このへんの記事をどうぞ。
    http://www.mysql.gr.jp/mysqlml/mysql/msg/12442
    479 : NAME IS - 2009/07/15(水) 00:37:14 ID:??? (+0,-30,-65)
    >>477
    情報小出しがよくない。
    ・対象のテーブルについてshow create table XXX\G
    ・例示しているshow processlist;を省略しないで全部書く
    ・my.cnfもさらす
    話はそれから。
    480 : NAME IS - 2009/07/15(水) 00:38:44 ID:??? (+57,+29,-34)
    だからポスグレ使えばいいじゃん。こんなクソみたいなDBにいつまでもしがみつくなって。
    481 : NAME IS - 2009/07/15(水) 01:10:17 ID:DEAJvIl0 (+11,+28,+0)
    バカ共晒し上げ
    482 : NAME IS - 2009/07/15(水) 03:34:49 ID:??? (+0,+30,-171)
    >>477
    情報があまりにも小出しで憶測でしか回答できないんだけど
    要するにユーザーエージェントとかIPアドレスとかリファラを取得してそれをDBに入れたいって事だよね。
    この流れの中に著しく遅くなる原因があるとすれば
    思い当たるのはIPアドレスからホスト名を得る場合に若干遅くなるので
    それが溜まって遅延するのかも。

    それにしてもPHPがタイムアウトする程遅いというのは若干異常。
    マイクロタイム関数とかでどの処理に時間がかかってるのかを調べた方がいい。
    MYSQL側は、一つのスクリプトで不必要にコネクトやクローズ繰り返したりせず
    テーブル設計も不必要に大きくせず、不必要なクエリを送ったりしなければ
    デフォルトで十分速いので大丈夫。
    483 : NAME IS - 2009/07/15(水) 05:41:32 ID:kZc9K5py (+0,+0,+0)
    >>479
    有難うございます。
    +--------+----------------------+-----------------+-------------+---------+------+----------+---------------------------------------------------------------------------------------------------------------------------------
    | Id | User | Host | db | Command | Time | State | Info
    +--------+----------------------+-----------------+-------------+---------+------+----------+----------------------------------------------------------------------------------------------------------------------------------
    | 256912 | ****** | localhost | *********** | Query | 33 | Locked | insert into user (個体識別,初めての時間,最新の時間,UA,訪問履歴,どこから来たか) values ('XXXX','1247543954','1247543954','DoCoMo....','1247543954idx,','5')
    | 256913 | ****** | localhost | *********** | Query | 33 | Locked | insert into user (個体識別,初めての時間,最新の時間,UA,訪問履歴,どこから来たか) values ('YYYY','1247543954','1247543954','DoCoMo....','1247543954idx,','5')
    | 256914 | ****** | localhost | *********** | Query | 33 | Locked | update user set 最新の時間='1247543954',comedate='1247543914idx,1247543945idx,' where 個体識別'xxxxxxx'
    | 256915 | ****** | localhost | *********** | Query | 33 | Locked | update user set 最新の時間='1247543954',comedate='1247543914idx,1247543945idx,' where 個体識別'yyyyyyy'
    そのほかは用意できしだい、載せます。




    >>482
    有難うございます。

    >要するにユーザーエージェントとかIPアドレスとかリファラを取得してそれをDBに入れたいって事だよね。
    そのとおりです。
    携帯サイトなんですけど、ユーザー情報の種類は情報は
    ・個体識別番号
    ・機種名(UA)
    ・初めて訪問したUNIX時間
    ・最新のindexに訪問したUNIX時間
    ・訪問履歴、いつどこのページに訪問したか(時間index.php,時間main.php、時間out.php......)
    ・どこからきたユーザーか
    です。ですからトップページへアクセスすると必ず
    select->insert
    もしくは
    select->update
    という流れが発生します。


    >思い当たるのはIPアドレスからホスト名を得る場合に若干遅くなるので
    それが溜まって遅延するのかも。
    htacssessでIP制限をかけたうえで、UAでDoCoMoなどは判断しております。
    よってIPアドレスからホスト名得るような記述はありません。

    >それにしてもPHPがタイムアウトする程遅いというのは若干異常。 マイクロタイム関数とかでどの処理に時間がかかってるのかを調べた方がいい。
    自分も異常だと思います。
    マイクロタイム関数ではないんですけど、やはりSQL履歴をみると、
    多数の処理がロックされてしまっているのが原因のようです。

    解決策がわかりません。。。。。
    たしかにそこそこアクセスはあるんですけど、
    感覚的にタイムアウトしてしまうほどの処理の量はありえないと思うんですが。。。。
    484 : NAME IS - 2009/07/15(水) 09:29:44 ID:??? (+0,-5,-36)
    >>483
    insertもupdateも原則爆速なのでselectの方法に問題があるのかも。
    PHP側の処理で時間がかかりDBがその間待たされてる可能性もあるのでどっちに原因があるのかは調べた方がいいけど。
    485 : NAME IS - 2009/07/15(水) 10:13:38 ID:mKEXFaxl (+0,-30,-123)
    >>484

    selectに関しては、

    select 初めての訪問時間,最新の訪問時間,訪問履歴 from user where 個体識別='そのアクセスの個体識別'

    というように毎回発行し、

    結果行数が一行(訪問したことがある)の場合はupdate,
    結果行数が0行(初めての訪問)の場合はinsert

    というようにSQL文を発行しています。

    SQLクエリ自体がロックされている(待たされている)ので、
    SQL文を受ける側、DB側、に問題があるかと思います。
    487 : NAME IS - 2009/07/15(水) 10:30:33 ID:??? (+57,+29,-5)
    多いね。
    このスレのみんなが質問に答える気がなくなるぐらい多いよ!
    488 : NAME IS - 2009/07/15(水) 10:42:21 ID:??? (-7,-26,-16)
    >>486
    Σ(゜д゜;)
    はっきり言うと「お前がデータベース触るのはヤメロ」と言いたくなる数字
    489 : NAME IS - 2009/07/15(水) 10:43:50 ID:mKEXFaxl (+13,+29,-9)
    インデックスを作成したところ、あっさりと解決できました。
    お騒がせしました、感謝します^^
    490 : NAME IS - 2009/07/15(水) 11:37:21 ID:??? (+65,+29,-24)
    時期が時期だし米ではMyQL(マイクェル)みたいな新DB立ち上がったりしてないのかね。
    正直選択に困る時代になったなあ…
    ポスグレはレンサバが対応してないことも多いし。
    491 : NAME IS - 2009/07/15(水) 11:53:59 ID:??? (-1,-29,-21)
    MySQL に ISAM や InnoDB のように PostgreSQL があれば…
    492 : NAME IS - 2009/07/15(水) 12:19:59 ID:??? (+3,-30,-78)
    >>478
    ついでに言っとくと、文字コード指定で、
    sjisとujisは使わないほうがいい。
    かわりに、cp932とeucjpmsを使うべき。

    ちなみに、そうなった原因は、ユニコード
    コンソーシアムが非常識だったせい。
    MySQL ABはあんまり悪くない。
    493 : NAME IS - 2009/07/15(水) 12:41:08 ID:??? (+12,-23,-2)
    494 : NAME IS - 2009/07/15(水) 20:30:30 ID:??? (+4,-23,-30)
    で、まだMySQLはsun製って事になってるけどいつ頃にOracle製って表記されるようになる予定なの?
    495 : NAME IS - 2009/07/16(木) 07:32:31 ID:??? (+58,+29,-43)
    >>455
    そうだね。トランザクションでやることになると思う。
    ただ、日記のIDを通番とかじゃなくて、先にIDがわかる方法(日付/時間ベースで振るとか)なら、
    先にuploadファイルの方をINSERTしてから、日記INSERTでも良さそうだけど、
    途中でエラーが起こることを考えたら、やっぱりトランザクションにした方がいいと思う。
    496 : NAME IS - 2009/07/16(木) 07:41:48 ID:??? (+55,+29,-46)
    バカの一つ覚えみたいにトランザクションを連呼する奴多いよな
    497 : NAME IS - 2009/07/16(木) 07:56:25 ID:??? (+93,+29,-25)
    >>489
    ポスグレは賢いからインデックス使わなくても速い
    乗り換えるなら今だよ
    499 : NAME IS - 2009/07/16(木) 12:57:21 ID:??? (+104,+29,-3)
    >>497
    どんな魔法が使われているんですか?
    ←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / mysql スレッド一覧へ
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

    類似してるかもしれないスレッド


    トップメニューへ / →のくす牧場書庫について