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

    私的良スレ書庫

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

    元スレMySQL 総合 Part15

    mysql スレッド一覧へ / mysql とは? / 携帯版 / dat(gz)で取得 / トップメニュー
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : - insertall + - mregexp + - SSD + 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。
    レスフィルター : (試験中)
    ←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitter
    501 : NAME IS - 2009/02/13(金) 12:39:29 ID:??? (+51,+30,+0)
    502 : NAME IS - 2009/02/13(金) 15:02:29 ID:??? (+60,+29,-4)
    >>500
    >レコードの存在チェックをかけたいカラムはプライマリキーではありません。
    503 : NAME IS - 2009/02/13(金) 17:15:30 ID:??? (+11,-11,+0)
    ユニークならok
    504 : NAME IS - 2009/02/14(土) 00:22:16 ID:??? (+50,+28,-4)
    >>491
    どの文字がどのように化けるか具体的に。
    505 : NAME IS - 2009/02/14(土) 00:22:38 ID:??? (-2,-29,+0)
    >>494
    それ sjis のことじゃね?
    506 : NAME IS - 2009/02/14(土) 11:51:21 ID:??? (-1,-29,-48)
    >>491
    この条件で文字化けが起きるのはおかしいので、
    表示する時の問題な気がする。
    例えば、プログラムで表示してるなら、そっちの設定がおかしいとか。

    どうでも良いけど、set names 何回するのかとw

    >>494
    sqlインジェクションとujisは関係ない。set names の問題と勘違いしてるのかな?
    http://blog.ohgaki.net/set_namesa_mcb_asc
    508 : NAME IS - 2009/02/14(土) 21:37:04 ID:??? (+2,-29,-50)
    mysqlbenchでコネクション数を1000より大きくしたいのですが。。。
    どなたか方法ご存知ありませんか?
    509 : NAME IS - 2009/02/15(日) 10:34:34 ID:??? (+26,+2,+2)
    >>508
    存じております><
    510 : NAME IS - 2009/02/16(月) 16:04:35 ID:??? (+9,-29,-29)
    >>501
    横やりなんだけど
    > ON DUPLICATE KEY UPDATE を利用する時は DELAYED オプションは無視されます。
    ってあるじゃん。やっぱりそうなると大規模じゃ無理ぽ?みんなどうしてるのかな。
    511 : NAME IS - 2009/02/16(月) 16:05:27 ID:??? (+68,+28,-1)
    >>490
    読んだけど、けども・・・。
    512 : NAME IS - 2009/02/16(月) 16:33:10 ID:??? (+62,+29,+0)
    >>511
    なんだ、はっきり言え
    513 : NAME IS - 2009/02/17(火) 08:55:16 ID:RjANfwsW (+55,+28,-10)
    オートインクリメントで0から始める事ってできないんですか?
    514 : NAME IS - 2009/02/17(火) 09:31:00 ID:??? (+13,-30,+0)
    >>512
    他に読むべき本が・・・、あるっ・・・!
    初心者向けなのはわかるけど、あまり理系に向いてないというか浮かんでくる疑問が多くてこれ一冊じゃわかった気にならない。

    >>513
    手動でsequenceのテーブル書き換えるかAUTO_INCREMENTを0にしたらどうかな。結果報告待ってます。

    最近こんなのが出て頻繁に落ちるようになっちゃった。メモリ不足なのかな・・・。
    090217 9:29:42 - mysqld got signal 11 ;
    This could be because you hit a bug. It is also possible that this binary
    or one of the libraries it was linked against is corrupt, improperly built,
    or misconfigured. This error can also be caused by malfunctioning hardware.
    We will try our best to scrape up some info that will hopefully help diagnose
    the problem, but since we have already crashed, something is definitely wrong
    and this may fail.

    key_buffer_size=402653184
    read_buffer_size=2097152
    max_used_connections=18
    max_threads=151
    threads_connected=12
    It is possible that mysqld could use up to
    key_buffer_size + (read_buffer_size + sort_buffer_size)*max_threads = 1013224 K
    bytes of memory
    Hope that's ok; if not, decrease some variables in the equation.
    うーん。
    515 : NAME IS - 2009/02/17(火) 12:32:07 ID:??? (+0,-5,-34)
    >>514
    OSは何なの?
    物理メモリーやスワップはどのくらい?
    516 : NAME IS - 2009/02/17(火) 13:19:04 ID:??? (+0,+0,+0)
    >>515
    返信ありがとう。チューニングのチュの字もわかんないへたれです。
    FreeBSD, メモリ4G, スワップ1Gです。

    %uname -a
    FreeBSD kennedy.l3tp.org 7.1-RELEASE FreeBSD 7.1-RELEASE #0: Thu Jan 1 08:58:24 UTC 2009 root@driscoll.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC amd64
    %swapinfo
    Device 1K-blocks Used Avail Capacity
    /dev/ad0s1b 1048576 36 1048540 0%
    %dmesg |grep mem
    usable memory = 4280016896 (4081 MB)
    avail memory = 4122501120 (3931 MB)
    %pkg_info -Ix mysql-server
    mysql-server-5.1.30 Multithreaded SQL database (server)

    key_buffer = 384M
    max_allowed_packet = 1M
    table_cache = 512
    sort_buffer_size = 2M
    read_buffer_size = 2M
    read_rnd_buffer_size = 8M
    myisam_sort_buffer_size = 64M
    thread_cache_size = 8
    query_cache_size = 32M
    # Try number of CPU's*2 for thread_concurrency
    thread_concurrency = 8

    # of RAM but beware of setting memory usage too high
    #innodb_buffer_pool_size = 384M
    innodb_buffer_pool_size = 2000M
    #innodb_additional_mem_pool_size = 20M
    innodb_additional_mem_pool_size = 512M
    # Set .._log_file_size to 25 % of buffer pool size
    #innodb_log_file_size = 100M
    #innodb_log_buffer_size = 8M
    #innodb_flush_log_at_trx_commit = 1
    #innodb_lock_wait_timeout = 50

    そこまで高負荷とは思ってないのですが、phpMyAdminでつなぐと頻繁に落ちる気がしてます。
    517 : NAME IS - 2009/02/17(火) 13:30:37 ID:??? (+52,+29,+0)
    チュの字ってなんか笑える
    518 : NAME IS - 2009/02/17(火) 14:04:01 ID:??? (+52,+29,-3)
    俺はお前にホの字だこのやろう
    519 : NAME IS - 2009/02/17(火) 15:03:57 ID:??? (+52,+29,-2)
    こりゃあ御の字だ
    520 : NAME IS - 2009/02/17(火) 17:05:36 ID:??? (+0,+29,-8)
    お前らのせいで>>516が口をへの字にしちゃったよ
    521 : 513 - 2009/02/17(火) 22:05:38 ID:zRRDspbr (-18,+29,-12)
    >>514
    無理でした。どうやっても1から始まります。
    オートインクリメントを使わず毎回自分で+1にするようにします。
    524 : NAME IS - 2009/02/17(火) 23:08:43 ID:??? (+0,-29,-31)
    アパッチを使いMySQLサーバを立て
    別のPCからMySQLモニタでサーバにアクセスすることって可能ですか?
    525 : NAME IS - 2009/02/17(火) 23:51:23 ID:??? (-2,-29,-4)
    >>524

    > アパッチを使いMySQLサーバを立て

    意味がわかんない。
    530 : NAME IS - 2009/02/18(水) 05:39:36 ID:??? (-5,-30,-134)
    select
    NC.NUMCOMMENT AS NUMCOMMENT,
    T.BODY AS BODY,
    T.TITLE AS TITLE,
    C.CATEGORY_NAME AS CATEGORY_NAME
    from
    TOPIC T,
    CATEGORY C,
    (select TOPIC_ID, count(*) as NUMCOMMENT
    from COMMENT group by TOPIC_IC) NC
    where
    NC.TOPIC_ID = T.TOPIC_ID
    and
    T.CATEGORY_ID = C.CATEGORY_ID

    (注意点)
    俺は酔っぱらっている。
    532 : NAME IS - 2009/02/18(水) 10:19:19 ID:??? (+48,+29,-2)
    >>531
    小泉じゃねーかYO!中川じゃねーんかYO!
    533 : NAME IS - 2009/02/18(水) 10:24:41 ID:??? (+54,+29,-26)
    >>522
    INSERT INTO (・・・) SELECT ・・・
    が使えるんじゃ?

    つかオートインクリメントの数字そのものは気にするものじゃないよ。
    どうしてもというのなら、自分でストアド書いたほうがマシかもね。
    535 : NAME IS - 2009/02/18(水) 13:33:05 ID:??? (+3,-30,+0)
    要は次のものを取得したいという事で良いのかな?

    ・あるcategory idを持つ記事全てに対して付けられたcomment数の合計
    ・あるcategory idを持つ記事のbodyとtitle全て

    だとすれば、これはクエリをcomment数を求めるクエリとbodyとtitleを
    求めるクエリの2つに分けるのが、その後のアプリの実装も含めて結果的
    には一番楽だと思う。

    select
    COUNT(*) AS NUMCOMMENT,
    CA.CATEGORY_NAME AS CATEGORY_NAME
    from TOPIC T, CATEGORY CA, COMMENT CM
    where
    T.CATEGORY_ID = CA.CATEGORY_ID AND
    T.TOPIC_ID = CM.TOPIC_ID and
    T.CATEGORY_ID = ???
    group by CATEGORY_NAME

    select
    T.BODY AS BODY, T.TITLE AS TITLE,
    CA.CATEGORY_NAME AS CATEGORY_NAME
    from TOPIC T, CATEGORY CA
    where
    T.CATEGORY_ID = CA.CATEGORY_ID and
    T.CATEGORY_ID = ???
    537 : NAME IS - 2009/02/18(水) 21:45:06 ID:??? (+62,+29,-141)
    結局ソートで一回、結合で一回インデックスを読みに行くことで
    実現されるから、大事なところにインデックス貼っておけばそうは
    変わらないと思う。
    あとはAとBのレコード数と、制約条件などの有無でも変わってくる
    はずなので、具体的にはデータ依存としか言いようがない。

    あとLEFT JOINを使っているけど、NULLを含む列をORDER BYに
    使ったとき並び順は実装依存なので。明確に外部結合が必要で
    無い限り内部結合を使った方が無難です。
    538 : NAME IS - 2009/02/18(水) 21:45:41 ID:??? (+3,-30,-113)
    ストアドプロシージャの初歩的な書き方について質問です。
    プロシージャ内でテーブル名を変数に入れてクエリするにはどうしたらよろしいでしょうか?
    具体的には
    -----------------------------------------------------------------------
    delimiter //

    CREATE PROCEDURE table_count (OUT count INT , IN table_name text )
    BEGIN
    SELECT COUNT(*) INTO count FROM table_name;
    END;
    //

    delimiter ;
    -----------------------------------------------------------------------
    のようなことをしたいのですが、table_nameを変数として展開せずにtable_nameというテーブルを探しにいってしまいます。
    どう書いたらよろしいのでしょうか?

    よろしくお願いします。
    540 : 539 - 2009/02/19(木) 03:43:15 ID:??? (+56,+28,-19)
    自己解決スマソ
    更にサブクエリとすれば良かっただけでした
    541 : NAME IS - 2009/02/19(木) 16:53:51 ID:??? (+35,-30,+0)
    質問です

    複数のカラムを1つのカラムに見立てて
    ユニーク制約をかけることって出来ないのかな?
    複数カラムの全レコードを通して一意の値を持たせたいんだけど。

    動作的には空テーブルに
    INSERT INTO t1 ( c1 , c2 , c3 ) VALUES ( 1 , 2 , 3 );
    が成功したとき、

    INSERT INTO t1 ( c1 , c2 , c3 ) VALUES ( 3 , 1 , 2 ); も
    INSERT INTO t1 ( c1 , c2 , c3 ) VALUES ( 4 , 4 , 5 ); も
    INSERT INTO t1 ( c1 , c2 , c3 ) VALUES ( 4 , 5 , 3 ); も
    失敗するような感じになって欲しい。
    成功するのは
    INSERT INTO t1 ( c1 , c2 , c3 ) VALUES ( 4 , 5 , 6 );
    のように、c1,c2,c3とおして全く使用されていない値だけで
    組み合わされた時だけにしたい。

    UNIQUE (c1,c2,c3)みたいな表制約だと、c1,c2,c3の組み合わせの値が
    同一のときだけしか制約されないので、これじゃないと言う事だけは
    判ったんだけど。

    やっぱりプログラム側で事前に重複チェックするしかないのかな?
    542 : NAME IS - 2009/02/19(木) 16:55:22 ID:??? (+2,-29,-143)
    昇天してしまったマシンからデータベースのバックアップを取りたいと
    思っています。(マザーボードが死んだ)ディスクは生きているのですが、
    適当なマシンにディスクをマウントしてバックアップをとる場合、mysqldumpを
    使ってバックアップなどできるのでしょうか?os bootcdからrescueモードで
    できればと考えています。OSはCentOS5です。

    よろしくお願いします。
    543 : NAME IS - 2009/02/19(木) 18:01:48 ID:p33S2AI3 (-12,-6,+0)
    >>542
    OSに関係なく可能。
    544 : NAME IS - 2009/02/19(木) 18:45:23 ID:??? (+58,+29,-3)
    >>541
    それどんなシステムなの?
    545 : 541 - 2009/02/19(木) 19:01:29 ID:??? (+63,+30,-65)
    一件づつにユニークなナンバリングがされたアイテムを3つ用意して
    それを登録してもらうんだけど、間違って同じ番号を複数入力されると
    既に出来ている参照系に大きな影響が出てしまって
    困るので、こういう風にしたいなぁと。

    本当なら正規化してテーブル分けて云々するのがスジなのも
    わかっているんだけど、よんどころない事情でそれも出来ないんだ
    546 : NAME IS - 2009/02/19(木) 22:07:07 ID:??? (+12,-30,-85)
    >>541
    トリガぐらいしか思い浮かばないな、俺の頭じゃ
    該当テーブルの BEFORE INSERT/UPDATE/DELETE で
    CREATE TABLE selected (識別子 型 UNIQUE); なテーブルにも反映させる
    547 : NAME IS - 2009/02/19(木) 22:41:59 ID:??? (+12,-30,-192)
    c1, c2, c3 に入れる値を
    任意の自然数nの代わりに
    2の(n-1)乗になる数字を入れる

    つまり
    >>541
    INSERT INTO t1 ( c1 , c2 , c3 ) VALUES ( 1 , 2 , 4 );
    が成功したとき、

    INSERT INTO t1 ( c1 , c2 , c3 ) VALUES ( 4 , 1 , 2 ); も
    INSERT INTO t1 ( c1 , c2 , c3 ) VALUES ( 8 , 8 , 16 ); も
    INSERT INTO t1 ( c1 , c2 , c3 ) VALUES ( 16 , 32 , 4 ); も
    失敗するような感じになって欲しい。
    成功するのは
    INSERT INTO t1 ( c1 , c2 , c3 ) VALUES ( 16 , 32 , 64 );
    ・・・
    と置き換える
    549 : NAME IS - 2009/02/20(金) 09:44:10 ID:??? (+37,+12,+0)
    time型はそのためにある
    550 : NAME IS - 2009/02/20(金) 09:54:26 ID:??? (+7,-30,-88)
    >>549

    開始時刻 | 終了時刻 | 経過時間
    16:33:00 | 16:23:00 | 00:10:00
    10:40:00 | 10:31:00 | 00:09:00
    12:33:00 | 09:21:00 | 03:12:00
    13:15:00 | 11:14:00 | 02:01:00
    13:19:00 | 10:41:00 | 02:38:00

    経過時間は,timediff関数を使って求められたのですが,
    経過時間の合計や平均の出し方が分からないんです。
    ←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / mysql スレッド一覧へ
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : - insertall + - mregexp + - SSD + 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

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


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