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

    私的良スレ書庫

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

    元スレMySQL 総合 Part14

    mysql スレッド一覧へ / mysql とは? / 携帯版 / dat(gz)で取得 / トップメニュー
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : - 1 + - mysqldump + - rXBUq5sa + - share + - utf8_bin + 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。
    レスフィルター : (試験中)
    ←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitter
    404 : NAME IS - 2008/09/11(木) 17:30:59 ID:??? (+16,+29,-1)
    ログっつーもんはないのか
    407 : NAME IS - 2008/09/12(金) 20:43:32 ID:??? (-22,-30,-78)
    >ファイルをDBに格納する場合、BLOB型ならbase64エンコードをしなくて
    >そのまま突っ込んでもいいという事ですか?

    いいですよ。そのための BLOB です。なお、prepared statement 使って下さい。

    >BLOBにしておいて文字のデータ入れたりTEXTにしておいてバイナリ入れたりするのは邪道ですか?

    compare しないなら、どっちも同じ。
    compare するなら、text の方は characte set が効いてくるので、予期しない結果になるかも。
    408 : 388 - 2008/09/13(土) 13:18:09 ID:??? (+32,+29,-47)
    >>394
    もちろんkillで殺すんですが知りたかったのは
    クエリだけを停止するのは何のシグナルかということです
    409 : NAME IS - 2008/09/13(土) 16:49:47 ID:??? (+27,+29,-23)
    検索結果が1行だとわかっているときって LIMIT 1 付けたほうが速いのかな

    誰も実験したこと無いなら実験してみる
    410 : 399 - 2008/09/13(土) 19:07:14 ID:QFclDkB+ (+19,+29,-91)
    >>407
    ありがとうございます。BLOBでデータ入れる事にします。

    とりあえずPCの中にエロ画像が20万枚位あるので全部放り込んでみます。
    一つのテーブルに20万枚入りますか?
    テーブル分けたらいいんだけど、一つのテーブルってどの位のレコードが限度なんですか?
    PCの能力に左右されるんですかね?
    知ってる人教えて
    412 : NAME IS - 2008/09/13(土) 20:20:18 ID:??? (-26,-29,-71)
    あの、すいません。
    MYSQLに画像を入れようとして、BLOB型で入れたんですが
    WINDOWSのコマンドで確認してみると、エラー音とともに
    バイナリ文字が大量に出てきました。
    それをPHPで取り出して、ヘッダー(Content-type: image/gif)を
    入れると画像として表示されるんですが
    どこかおかしいですか?
    413 : NAME IS - 2008/09/13(土) 22:12:58 ID:??? (+22,+29,+0)
    どこもおかしくないんじゃない
    414 : NAME IS - 2008/09/14(日) 00:42:16 ID:??? (+22,+30,+0)
    417 : NAME IS - 2008/09/14(日) 05:51:39 ID:??? (-27,-30,-183)
    内部的にこんなふうに動いてるみたい。
    select * from Sample_TB where id = cast('' as decimal);

    で、
    mysql> select cast('' as decimal);
    +---------------------+
    | cast('' as decimal) |
    +---------------------+
    | 0 |
    +---------------------+
    1 row in set, 1 warning (0.00 sec)

    mysql> show warnings;
    +---------+------+---------------------------------------+
    | Level | Code | Message |
    +---------+------+---------------------------------------+
    | Warning | 1292 | Truncated incorrect DECIMAL value: '' |
    +---------+------+---------------------------------------+
    1 row in set (0.00 sec)

    警告が出る。
    ちなみにOracleだと''はNULL扱い、'a'とかやるとエラー。
    421 : NAME IS - 2008/09/15(月) 00:41:11 ID:??? (+7,+9,-7)
    select文とexplainの結果を食わせて
    どうしたらいいかのヒントまでくれるような
    そんなソフトってないかな
    422 : NAME IS - 2008/09/15(月) 13:13:20 ID:??? (+27,+29,-49)
    インデクスがあるのに何で使ってくれないんだー、ばかー、というとき、理由の explain が欲しいことはあるな。
    424 : NAME IS - 2008/09/16(火) 07:21:27 ID:??? (-25,-23,-6)
    whereで分散とかダメ?
    425 : NAME IS - 2008/09/16(火) 09:58:46 ID:??? (+29,+29,-134)
    >>424
    さっそくのレスありがとうございます。
    whereで分けるというアイデアは気づきませんでした。
    で、先ほどやってみました。
    で、うまくいきました、とご報告したかったのですが、
    こんどは別のSQLのGROUP BYで同じくOut Of Memoryで落ちました。

    結局、相当な数のSQL文に手を入れることになりそうです。
    もう、テストも終わりを迎えておりまして、
    これを全部対応しようとすると、再度テストをやり直す羽目になりそうです。

    パラメータを変更するなどの運用でなんとかするというのは難しいでしょうか。
    数万件でOut Of Memoryが多発すると考えていなく、誤算でした。
    427 : NAME IS - 2008/09/16(火) 10:36:08 ID:??? (-29,-30,-144)
    数十万件のソートは普通にできますが、僅か数万件のソートで問題が生ずるのなら、
    むしろソートする1レコード(キーとか色々含む)が巨大で、それが sort_buffer_size を
    上回るとかの問題ではないかという気がします。(ソート自体はtemp fileを使うはず)。

    「Needed 2095128 bytes」と言われたなら、素直に my.cnf に
    sort_buffer_size=10MB
    とか書いておけばよいのではないかと思いますが…。

    ただ、もし本当にレコードが巨大なら、それを丸ごとソートする事自体を考え直す方がいいかも。
    429 : NAME IS - 2008/09/16(火) 11:43:50 ID:??? (+29,+29,-73)
    >ソートする列は、単純な6桁の番号や5文字のCHARなので、大丈夫だと思っていましたが、
    >ソートする場合は、該当する列だけではなく、その他のデータも含まれるんですね。

    いや、一行目の理解で正しいんじゃないでしょうか。
    なんだか、ソート以外の処で引っ掛かっているような気がします。
    430 : NAME IS - 2008/09/16(火) 11:53:44 ID:??? (-23,-30,+0)
    >>429
    > なんだか、ソート以外の処で引っ掛かっているような気がします。
    ありがとうございます。それなら、まだ改善の見込みは少し残っているかもしれませんね。


    ちなみに、これ、もし、宜しよろしければ、
    どなたか、コメント頂けると嬉しいです。

    今回のエラーに関係がある部分を抜き出しました。
    *****で書いてあるのが、かなりいじった所です。
    チューニングについて書いてある色々参考にしたため、
    つじつまが合わなくなっているかも知れません。

    [mysqld]
    key_buffer = 64M *****
    tmp_table_size = 64M 
    table_cache = 1024 *****
    sort_buffer_size = 2M *****
    read_buffer_size = 2M *****
    read_rnd_buffer_size = 4M *****
    myisam_sort_buffer_size = 64M *****
    thread_cache_size = 8
    query_cache_size = 32M
    max_connections = 200 *****

    default-table-type=InnoDB

    innodb_buffer_pool_size = 256M *****
    innodb_log_file_size = 64M *****
    innodb_log_buffer_size = 32M *****

    [isamchk]
    key_buffer = 128M *****
    sort_buffer_size = 4M
    read_buffer = 4M
    write_buffer = 4M

    [myisamchk]
    key_buffer = 128M *****
    sort_buffer_size = 4M
    read_buffer = 4M
    write_buffer = 4M
    432 : NAME IS - 2008/09/16(火) 11:58:44 ID:??? (-27,-30,-151)
    ほんと、なんどもすみません。積んでいるメモリーは2GBです。
    innodb_buffer_pool_size + key_buffer_size + max_connections * (sort_buffer_size + read_buffer_size) + max_connections * 2 MB
    で計算すると1520MBで、Apacheと共存して使っています。
    433 : NAME IS - 2008/09/16(火) 13:00:03 ID:??? (-26,-21,-17)
    OSは何?
    Windows 32bitだと普通に限界近いよね。
    435 : NAME IS - 2008/09/16(火) 19:54:58 ID:??? (+22,+24,-9)
    ふつうに32bitの壁っぽいね。
    64bitにするとか、
    上位層からの同時接続数を絞ってもらうよう
    交渉するとか。
    436 : NAME IS - 2008/09/17(水) 11:49:53 ID:??? (+32,+29,-43)
    MySQLのレコードの処理は4万件でも10万件でも100万件でも
    基本的に問題ないよね?チューニングしてれば。

    でも、エラーになりやすい事を考えると、
    レコードが増えていったら、テーブルを分ける方が良いのだろうか?
    437 : NAME IS - 2008/09/17(水) 12:34:50 ID:??? (+33,+30,-125)
    問題ないすよ。

    エラーになりやすいかどうかは一般化できないし、
    それに対してテーブル分割が適しているかどうかも一般化できないと思うけど。

    テーブル分割のメリットって、検索範囲を絞る必要が軽減されて
    SQLやインデックスで考えるパラメータが減りますよね、とか
    インデックス張り直す速度が向上しますよね、って程度しか思い付かない。
    その代わりに柔軟性が落ちて、出来ない検索が増える、と。
    あんまメリット無くない?
    438 : NAME IS - 2008/09/17(水) 12:54:01 ID:??? (+38,+29,-96)
    2chのように1日に何万回も書き込みが発生する規模の掲示板を作っているのですが、こういったことにデータベースは不向きでしょうか?
    レンタルでの運営なので全体では2ch規模になると思われます。

    検索機能もほしいのでできればデータベースでレス1つ1つを保持したいのですが莫大なログの読み書きは現実的に可能でしょうか?
    ロードバランスなどの負荷対策は行います。
    439 : NAME IS - 2008/09/17(水) 13:07:48 ID:??? (+38,+29,-19)
    >>438
    板毎にテーブルを作成するの?

    2ch規模だと、板毎にサーバが必要になるだろうけど、
    まぁそんなアクセスは無いと思うから、普通に大丈夫だと思うけど。
    440 : NAME IS - 2008/09/17(水) 14:49:45 ID:??? (+33,+29,-14)
    板をまたいだスレタイ検索ならともかく、
    板をまたいだスレの内容(レス)検索って、あっても相当使いにくそうな気がする。
    441 : NAME IS - 2008/09/17(水) 14:58:24 ID:??? (+38,+29,-128)
    >>439さん

    レスありがとうございます。
    同一テーブル内で一意な掲示板IDをふって分ける形になります。
    携帯のレンタル掲示板なのですべてのアクセスを合算すれば2ch規模になることもありえます。
    負荷対策はプロキシかませてごちゃごちゃやることになると思います。

    ログ自体はdatファイルで保存して検索されうるデータだけDBに入れておいてDBは検索の時のみ使うのが最適でしょうか?
    すべてのレスが同じテーブルに格納されているのでビジーになってしまう気がして…
    ご教示お願い致します。
    442 : NAME IS - 2008/09/17(水) 15:10:14 ID:??? (+37,+29,-64)
    >440さん

    レスありがとうございます。
    全体検索はスレタイのみでもごまかせると思いますが、
    画像や着うたの投稿も実装するのでできればレス検索も想定しておきたいです。

    おそらくレス検索は別サーバに全レスデータいれてsennaでぶんまわす感じになるとは思います。
    443 : NAME IS - 2008/09/17(水) 18:07:55 ID:??? (+32,+29,-78)
    >ログ自体はdatファイルで保存して検索されうるデータだけDBに入れておいてDBは検索の時のみ使うのが最適でしょうか?

    俺もそれでいつも悩むんだけど、ログ=検索されうるデータじゃないのか?
    例えば、スレタイ・レスと登録日のテーブルを分けるとしても
    結局、必要なデータなわけだから、DBに入れるのもdat化するのも
    同じ事のように思うんだが。
    444 : NAME IS - 2008/09/17(水) 18:28:28 ID:??? (+29,+29,-27)
    DATのほうが使いやすいと思う・・・。データベース鯖のこと考えなくて済むし。
    掲示板レンタルならなおさらじゃない?
    445 : NAME IS - 2008/09/17(水) 20:02:10 ID:??? (+29,+29,-20)
    でも、ログを検査する時、大量に読み込まなきゃいけないだろ?
    実質無理じゃないか?負荷がかかりすぎて。
    446 : NAME IS - 2008/09/17(水) 20:15:21 ID:??? (-21,-19,-10)
    書き込みをdatにしまうときに、senna に掛けて検索用キーだけDBに入れる、という意味じゃないの?
    447 : NAME IS - 2008/09/17(水) 20:24:19 ID:??? (+32,+29,-12)
    検索用キーを入れても、取り出す時に
    ファイルを読み込まないといけないのでは?俺の知識不足かな。
    449 : NAME IS - 2008/09/17(水) 20:39:03 ID:??? (+32,+29,-18)
    >>447
    そりゃそうだが、読む必要があるのは表示する分だけだから、ごく少量でしょ。
    450 : NAME IS - 2008/09/17(水) 21:27:49 ID:??? (+27,+29,-8)
    >読む必要があるのは表示する分だけだから

    ってことなら、やっぱりDBでいいんじゃないか?
    ←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / mysql スレッド一覧へ
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : - 1 + - mysqldump + - rXBUq5sa + - share + - utf8_bin + 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

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


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