私的良スレ書庫
不明な単語は2ch用語を / 要望・削除依頼は掲示板へ。不適切な画像報告もこちらへどうぞ。 / 管理情報はtwitterでログインするとレス評価できます。 登録ユーザには一部の画像が表示されますので、問題のある画像や記述を含むレスに「禁」ボタンを押してください。
元スレMySQL 総合 Part18
mysql スレッド一覧へ / mysql とは? / 携帯版 / dat(gz)で取得 / トップメニューみんなの評価 :
レスフィルター : (試験中)
varcharとtextの違いってなんですか?
両方とも最大格納文字数って65535ですよね?
両方とも最大格納文字数って65535ですよね?
DBのテーブル設計についてアドバイスをください。(長文失礼します)
SNSもどきのサイトを作っているのですが、
自分のマイページにお気に入りユーザーの行動を逐一通知する機能を作ろうと考えています。
例えば、お気に入りユーザーが「日記を書いた」「写真をアップした」「他の日記にコメントをつけた」等の
行動をとった場合に、自分のマイページに行動履歴が表示されるようにしたいのです。
その際、行動履歴のデータはどのように取得すべきなのでしょうか?
単純に、マイページを表示する度に必要な情報を各テーブルから取得れば実装は可能です。
具体的には、
全てのお気に入りユーザーについて
entryテーブル、pictureテーブル、commentテーブル、等、ユーザーのアクションに関連するテーブルから
データを引っ張ってきて新着順に表示する感じです。
ただ、お気に入りユーザーが増えたら物凄く重い処理になりそうです。。
もう一つの案としては、
行動履歴用のテーブルを別に用意して、
ユーザーが何かしらのアクションを起こした時に、本来のテーブルとは別に
行動履歴用のテーブルにもデータを保存するようにすれば
マイページを表示する際には一つのテーブルから検索するだけでよくなるので良さそうです。
どちらの方法が一般的なのでしょうか?
また違う方法あるのでしょうか?
facebookなどにもある機能なので理想的な実装方法がありそうなのですが
ネットで調べてもなかなか見つかりませんでした。
SNSもどきのサイトを作っているのですが、
自分のマイページにお気に入りユーザーの行動を逐一通知する機能を作ろうと考えています。
例えば、お気に入りユーザーが「日記を書いた」「写真をアップした」「他の日記にコメントをつけた」等の
行動をとった場合に、自分のマイページに行動履歴が表示されるようにしたいのです。
その際、行動履歴のデータはどのように取得すべきなのでしょうか?
単純に、マイページを表示する度に必要な情報を各テーブルから取得れば実装は可能です。
具体的には、
全てのお気に入りユーザーについて
entryテーブル、pictureテーブル、commentテーブル、等、ユーザーのアクションに関連するテーブルから
データを引っ張ってきて新着順に表示する感じです。
ただ、お気に入りユーザーが増えたら物凄く重い処理になりそうです。。
もう一つの案としては、
行動履歴用のテーブルを別に用意して、
ユーザーが何かしらのアクションを起こした時に、本来のテーブルとは別に
行動履歴用のテーブルにもデータを保存するようにすれば
マイページを表示する際には一つのテーブルから検索するだけでよくなるので良さそうです。
どちらの方法が一般的なのでしょうか?
また違う方法あるのでしょうか?
facebookなどにもある機能なので理想的な実装方法がありそうなのですが
ネットで調べてもなかなか見つかりませんでした。
DB分散を始めてみようと思っています。
どのDBサーバにどれくらい負荷がかかっているかを
モニタリングするような仕組みはありますか?
WindowsのタスクマネージャーのCPU利用率みたいなグラフだとなお良いです。
どのDBサーバにどれくらい負荷がかかっているかを
モニタリングするような仕組みはありますか?
WindowsのタスクマネージャーのCPU利用率みたいなグラフだとなお良いです。
INSERTがある日突然遅くなった(数msだったのが数十秒に)んだけど
どんな可能性があるでしょうか。
状況としては
・INSERT ... ON DUPLICATE KEY UPDATEを使っている
・SELECTを使ったINSERTではない
・特定のテーブルへのINSERTだけが遅い
・そのテーブルをロックするクエリなんて無い
・トランザクションの途中なのに重い
(commitで時間がかかるほうがまだ理解できる)
自分の知識で思いつく範囲では、ロックされてるとしか思えないので
やっぱりどっかでロックしてるのかなぁと思うのですが。
どんな可能性があるでしょうか。
状況としては
・INSERT ... ON DUPLICATE KEY UPDATEを使っている
・SELECTを使ったINSERTではない
・特定のテーブルへのINSERTだけが遅い
・そのテーブルをロックするクエリなんて無い
・トランザクションの途中なのに重い
(commitで時間がかかるほうがまだ理解できる)
自分の知識で思いつく範囲では、ロックされてるとしか思えないので
やっぱりどっかでロックしてるのかなぁと思うのですが。
インデックスは単項目のが3つあるけど
INSERTとはいえ事実上はUPDATEで、どのインデックス項目も更新しない
というときでも遅い…。
データもたかが4万行程度。
mysqlcheckは知らなかったのでちょっと調べてみます。
INSERTとはいえ事実上はUPDATEで、どのインデックス項目も更新しない
というときでも遅い…。
データもたかが4万行程度。
mysqlcheckは知らなかったのでちょっと調べてみます。
>>867
ふつうにハード障害を疑っちゃうなあ
ふつうにハード障害を疑っちゃうなあ
5.5になって、パフォーマンスが大幅に改善したらしいけど、
実際に使っていて、変わったっていう人いますか?
実際にどうなのかを聞いてみたい。
実際に使っていて、変わったっていう人いますか?
実際にどうなのかを聞いてみたい。
バックアップの考え方について教えてください。
バックアップ方法として、mysqldumpを忌み嫌う人が多いのは何故でしょうか?
データが膨大になると致命的になるのですか?
うちの会社のサービスはDBの総データ量がまだ10GB程度なので
フルでバックアップとっても数分で終わります。
その間は確かに接続が困難になるのですが、週1で深夜3時とかなので問題ないと思っています。
ここら辺の考え方は間違っているのでしょうか?
会社にWebサービスのノウハウが無いため一般常識が欠落していそうで少し怖いのです。
バックアップ方法として、mysqldumpを忌み嫌う人が多いのは何故でしょうか?
データが膨大になると致命的になるのですか?
うちの会社のサービスはDBの総データ量がまだ10GB程度なので
フルでバックアップとっても数分で終わります。
その間は確かに接続が困難になるのですが、週1で深夜3時とかなので問題ないと思っています。
ここら辺の考え方は間違っているのでしょうか?
会社にWebサービスのノウハウが無いため一般常識が欠落していそうで少し怖いのです。
>>876
大きな誤解があると思うけど、mysqldumpだと論理バックアップが取れるだけ。
だから、リカバリーしようとした時に、リカバリが正常に出来ない場合が多々発生する。
mysqldumpは緊急用であって、業務で使うのは論外。
大きな誤解があると思うけど、mysqldumpだと論理バックアップが取れるだけ。
だから、リカバリーしようとした時に、リカバリが正常に出来ない場合が多々発生する。
mysqldumpは緊急用であって、業務で使うのは論外。
>その間は確かに接続が困難になるのですが、週1で深夜3時とかなので問題ないと思っています。
mysqldumpしている間は、接続が困難になるって、
そもそも何?
接続が困難じゃなくて、単に落ちているってことでしょ。
サーバー落とすような運用がそもそもどうかと思うけど。
そもそも何?
接続が困難じゃなくて、単に落ちているってことでしょ。
サーバー落とすような運用がそもそもどうかと思うけど。
みなさんは保存ドライブに、もうSSDは使ってますか?
SSDだと実質オンメモリDBに近い代物になると考えて良いのかな。
今は、安価なMLCタイプでも総書き込み数700テラ持つとかで、
寿命的には100年かけても使い切るの無理レベルだし
そろそろ検討しても良いのかな、と思いまして。
SSDだと実質オンメモリDBに近い代物になると考えて良いのかな。
今は、安価なMLCタイプでも総書き込み数700テラ持つとかで、
寿命的には100年かけても使い切るの無理レベルだし
そろそろ検討しても良いのかな、と思いまして。
SSDを使うことを検討するような高負荷のサイトなら、
いっそうClusterを使った方がスケールアウトがしやすいし、
速度も圧倒的に速いでしょ?
いっそうClusterを使った方がスケールアウトがしやすいし、
速度も圧倒的に速いでしょ?
>>882
なるほど。 つまりSSDではレスポンスの改善は期待できないということでしょうか?
なるほど。 つまりSSDではレスポンスの改善は期待できないということでしょうか?
期待できないことないけど、実効の転送速度がSASと余り変わらない。
それに、SASに比べてSSDの信頼性は格段に低いから、そもそもサーバー向きじゃない。
それなら、まずRAID0+1で4台くらい並列でやってみることが先で、
それでも限界ならClusterかもね。
それに、SASに比べてSSDの信頼性は格段に低いから、そもそもサーバー向きじゃない。
それなら、まずRAID0+1で4台くらい並列でやってみることが先で、
それでも限界ならClusterかもね。
その著者名とか分類とかタグに別のフィールド
(たとえば分類コード)があって、そのフィールドも検索対象になるなら
そういうテーブル構造がいいんだろうけど、
名称だけしか必要ない(twitterのハッシュタグみたいな)んだったら
記事: id, body
著者: id, 記事_id, name
カテゴリ: id, 記事_id, name
タグ: id, 記事_id, name
でいいんじゃねえかなぁと思う昨今
(たとえば分類コード)があって、そのフィールドも検索対象になるなら
そういうテーブル構造がいいんだろうけど、
名称だけしか必要ない(twitterのハッシュタグみたいな)んだったら
記事: id, body
著者: id, 記事_id, name
カテゴリ: id, 記事_id, name
タグ: id, 記事_id, name
でいいんじゃねえかなぁと思う昨今
>>897
それって、comment は一意に決まる?
それって、comment は一意に決まる?
前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / mysql スレッド一覧へ
みんなの評価 : 類似してるかもしれないスレッド
- MySQL 総合 Part12 (1001) - [94%] - 2008/1/30 17:34 ○
- MySQL 総合 Part13 (996) - [94%] - 2008/6/10 21:02 ☆
- MySQL 総合 Part14 (1001) - [94%] - 2008/11/23 10:17 ☆
- MySQL 総合 Part15 (1001) - [94%] - 2009/4/20 12:15 ☆
- MySQL 総合 Part17 (1001) - [94%] - 2010/6/10 20:47 ○
- MySQL 総合 Part19 (982) - [94%] - 2011/6/9 2:33
- MySQL 総合 Part26 (860) - [89%] - 2023/2/2 9:30
- MySQL 総合 Part20 (995) - [89%] - 2011/10/17 4:48
- MySQL 総合 Part21 (1001) - [89%] - 2011/12/25 22:16
- MySQL 総合 Part22 (1001) - [89%] - 2012/7/10 16:45
- MySQL 総合 Part23 (992) - [89%] - 2013/8/11 17:00
- MySQL 総合 Part24 (1010) - [89%] - 2015/2/14 4:46
- MySQL 総合 Part25 (947) - [89%] - 2017/6/18 6:30
- MySQL vs PostgreSQL Part2 (941) - [31%] - 2022/5/26 1:30 ○
トップメニューへ / →のくす牧場書庫について