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

私的良スレ書庫

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

元スレMySQL 総合 Part18

mysql スレッド一覧へ / mysql とは? / 携帯版 / dat(gz)で取得 / トップメニュー
スレッド評価: スレッド評価について
みんなの評価 :
タグ : - megab + 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。
レスフィルター : (試験中)
←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitter
852 : NAME IS - 2010/12/17(金) 01:53:04 ID:??? (+22,+29,-2)
漢のコンピュータ道の開設間待ち
853 : NAME IS - 2010/12/17(金) 04:50:38 ID:??? (+35,+29,-19)
>>850
感覚的にはそれでいいと思う
Oracleでも速くなった経験がない>インデックスマージ
854 : NAME IS - 2010/12/17(金) 21:12:26 ID:??? (-29,-29,-28)
varcharとtextの違いってなんですか?
両方とも最大格納文字数って65535ですよね?
855 : NAME IS - 2010/12/17(金) 21:55:28 ID:??? (+8,+19,+0)
856 : NAME IS - 2010/12/17(金) 23:26:49 ID:Uu3BKaZa (+18,+18,-17)
>>853
Oracleにインデックスマージの機能ってあったっけ?
859 : NAME IS - 2010/12/19(日) 22:15:27 ID:TTyRkooc (+28,+30,+0)
DBのテーブル設計についてアドバイスをください。(長文失礼します)

SNSもどきのサイトを作っているのですが、
自分のマイページにお気に入りユーザーの行動を逐一通知する機能を作ろうと考えています。

例えば、お気に入りユーザーが「日記を書いた」「写真をアップした」「他の日記にコメントをつけた」等の
行動をとった場合に、自分のマイページに行動履歴が表示されるようにしたいのです。

その際、行動履歴のデータはどのように取得すべきなのでしょうか?


単純に、マイページを表示する度に必要な情報を各テーブルから取得れば実装は可能です。
具体的には、
全てのお気に入りユーザーについて
entryテーブル、pictureテーブル、commentテーブル、等、ユーザーのアクションに関連するテーブルから
データを引っ張ってきて新着順に表示する感じです。
ただ、お気に入りユーザーが増えたら物凄く重い処理になりそうです。。

もう一つの案としては、
行動履歴用のテーブルを別に用意して、
ユーザーが何かしらのアクションを起こした時に、本来のテーブルとは別に
行動履歴用のテーブルにもデータを保存するようにすれば
マイページを表示する際には一つのテーブルから検索するだけでよくなるので良さそうです。

どちらの方法が一般的なのでしょうか?
また違う方法あるのでしょうか?
facebookなどにもある機能なので理想的な実装方法がありそうなのですが
ネットで調べてもなかなか見つかりませんでした。
861 : NAME IS - 2010/12/20(月) 04:36:12 ID:??? (+30,+27,-40)
DB分散を始めてみようと思っています。
どのDBサーバにどれくらい負荷がかかっているかを
モニタリングするような仕組みはありますか?

WindowsのタスクマネージャーのCPU利用率みたいなグラフだとなお良いです。
862 : NAME IS - 2010/12/20(月) 05:26:58 ID:??? (-20,-22,-30)
>>859
自分なら後者。
おそらく大量のinsertがあるだろうから当然innodbで。
863 : NAME IS - 2010/12/20(月) 11:16:02 ID:8JXmBtVW (+24,+29,-55)
>>860

マニュアルを読み返してください。

サーバー側からの実行とクライアント側からの実行についての注意点が書かれています。

867 : NAME IS - 2010/12/22(水) 12:12:11 ID:??? (-16,-29,-110)
INSERTがある日突然遅くなった(数msだったのが数十秒に)んだけど
どんな可能性があるでしょうか。

状況としては
・INSERT ... ON DUPLICATE KEY UPDATEを使っている
・SELECTを使ったINSERTではない
・特定のテーブルへのINSERTだけが遅い
・そのテーブルをロックするクエリなんて無い
・トランザクションの途中なのに重い
 (commitで時間がかかるほうがまだ理解できる)

自分の知識で思いつく範囲では、ロックされてるとしか思えないので
やっぱりどっかでロックしてるのかなぁと思うのですが。
868 : NAME IS - 2010/12/22(水) 12:24:28 ID:??? (-26,-24,-18)
インデックスがいっぱい貼ってあるとか
mysqlcheckしてみるとか
869 : NAME IS - 2010/12/22(水) 12:48:37 ID:??? (+9,+6,-79)
インデックスは単項目のが3つあるけど
INSERTとはいえ事実上はUPDATEで、どのインデックス項目も更新しない
というときでも遅い…。
データもたかが4万行程度。

mysqlcheckは知らなかったのでちょっと調べてみます。
871 : NAME IS - 2010/12/22(水) 15:25:34 ID:??? (+25,+29,-5)
>>867
ふつうにハード障害を疑っちゃうなあ
872 : NAME IS - 2010/12/22(水) 16:26:17 ID:??? (+25,+29,-44)
>>867
他のテーブルがどうなってるかわからんが、インデックスの総量がメモリに収まらなくなってディスクアクセスが発生しちゃってるとか
メモリは十分に積んでるけど設定で使い切れてないとか
873 : NAME IS - 2010/12/22(水) 20:42:47 ID:??? (+13,+29,-14)
874 : NAME IS - 2010/12/23(木) 16:25:26 ID:??? (+27,+29,-30)
5.5になって、パフォーマンスが大幅に改善したらしいけど、
実際に使っていて、変わったっていう人いますか?

実際にどうなのかを聞いてみたい。
875 : NAME IS - 2010/12/23(木) 17:17:21 ID:??? (-24,-17,-12)
互換性がメタメタ
876 : NAME IS - 2010/12/23(木) 18:23:01 ID:YZc0Oqr1 (+40,+30,-149)
バックアップの考え方について教えてください。

バックアップ方法として、mysqldumpを忌み嫌う人が多いのは何故でしょうか?
データが膨大になると致命的になるのですか?

うちの会社のサービスはDBの総データ量がまだ10GB程度なので
フルでバックアップとっても数分で終わります。
その間は確かに接続が困難になるのですが、週1で深夜3時とかなので問題ないと思っています。

ここら辺の考え方は間違っているのでしょうか?
会社にWebサービスのノウハウが無いため一般常識が欠落していそうで少し怖いのです。
877 : NAME IS - 2010/12/23(木) 18:39:39 ID:??? (+42,+29,-52)
>>876
大きな誤解があると思うけど、mysqldumpだと論理バックアップが取れるだけ。
だから、リカバリーしようとした時に、リカバリが正常に出来ない場合が多々発生する。
mysqldumpは緊急用であって、業務で使うのは論外。
878 : NAME IS - 2010/12/23(木) 18:48:32 ID:??? (+33,+29,-48)
何かの原因でDBが異常をきたした場合って
他のバックアップ方法でも影響を受けるように思うけど
>>877が業務で使ってる方法は何なの?
879 : NAME IS - 2010/12/23(木) 18:55:39 ID:??? (+27,+29,-11)
>その間は確かに接続が困難になるのですが、週1で深夜3時とかなので問題ないと思っています。
880 : NAME IS - 2010/12/23(木) 19:08:33 ID:??? (+27,+29,-25)
mysqldumpしている間は、接続が困難になるって、
そもそも何?

接続が困難じゃなくて、単に落ちているってことでしょ。
サーバー落とすような運用がそもそもどうかと思うけど。
881 : NAME IS - 2010/12/23(木) 19:10:10 ID:??? (+42,+29,-138)
みなさんは保存ドライブに、もうSSDは使ってますか?
SSDだと実質オンメモリDBに近い代物になると考えて良いのかな。

今は、安価なMLCタイプでも総書き込み数700テラ持つとかで、
寿命的には100年かけても使い切るの無理レベルだし
そろそろ検討しても良いのかな、と思いまして。
882 : NAME IS - 2010/12/23(木) 19:31:43 ID:??? (+5,+3,-56)
SSDを使うことを検討するような高負荷のサイトなら、
いっそうClusterを使った方がスケールアウトがしやすいし、
速度も圧倒的に速いでしょ?
883 : 881 - 2010/12/23(木) 20:53:47 ID:??? (+22,+23,-36)
>>882
なるほど。 つまりSSDではレスポンスの改善は期待できないということでしょうか?
884 : NAME IS - 2010/12/23(木) 21:11:14 ID:??? (-16,-24,-75)
期待できないことないけど、実効の転送速度がSASと余り変わらない。
それに、SASに比べてSSDの信頼性は格段に低いから、そもそもサーバー向きじゃない。


それなら、まずRAID0+1で4台くらい並列でやってみることが先で、
それでも限界ならClusterかもね。
885 : NAME IS - 2010/12/23(木) 22:02:38 ID:??? (+25,+27,-35)
SSDの評価で転送速度て。本当に分かってんのかね
886 : NAME IS - 2010/12/23(木) 23:12:33 ID:??? (+25,+29,-19)
>>884
お前がとんでもないシッタカってことは理解してあげた。口から出まかせ
撒き散らされると迷惑だから、もう二度と湧いてこないこと。
887 : NAME IS - 2010/12/23(木) 23:16:18 ID:??? (+33,+29,-17)
>>876
リストアが遅い
一度リストアのテストしといたほうがいいよ
889 : NAME IS - 2010/12/24(金) 14:24:59 ID:??? (-23,-30,-78)
その著者名とか分類とかタグに別のフィールド
(たとえば分類コード)があって、そのフィールドも検索対象になるなら
そういうテーブル構造がいいんだろうけど、
名称だけしか必要ない(twitterのハッシュタグみたいな)んだったら
記事: id, body
著者: id, 記事_id, name
カテゴリ: id, 記事_id, name
タグ: id, 記事_id, name
でいいんじゃねえかなぁと思う昨今
891 : NAME IS - 2010/12/24(金) 18:04:13 ID:??? (+18,+29,+2)
>>889
その手もアリですね

>>890
了解です
895 : NAME IS - 2010/12/30(木) 03:17:01 ID:??? (+17,+29,-22)
>>893
うん。configureじゃなくなったようだ。
自分はどうやったっけな。インストールスクリプトがあったような。それはバイナリの場合か。
898 : NAME IS - 2011/01/02(日) 16:40:01 ID:??? (+5,+26,+0)
>>897
それって、comment は一意に決まる?
←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / mysql スレッド一覧へ
スレッド評価: スレッド評価について
みんなの評価 :
タグ : - megab + 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

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


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