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

    私的良スレ書庫

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

    元スレMySQL 総合 Part25

    mysql スレッド一覧へ / mysql とは? / 携帯版 / dat(gz)で取得 / トップメニュー
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。
    レスフィルター : (試験中)
    ←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitter
    101 : NAME IS - 2015/05/15(金) 01:15:05.94 ID:???.net (+105,+29,-39)
    >>100
    だから、それが外部キーなのかと。

    MySQLの狭義の外部キーではない、
    と俺は思う。
    話の中で、外部キーといって
    制約がないとか言われたら、
    混乱必至。
    102 : NAME IS - 2015/05/15(金) 12:53:43.17 ID:???.net (+108,+29,-16)
    >>101
    だから外部キーではないよ。 それは最初から言ってる。
    103 : NAME IS - 2015/05/15(金) 17:11:29.65 ID:BSFdDh6Z.net (+4,+19,-1)
    キーじゃない
    104 : NAME IS - 2015/05/15(金) 17:45:07.11 ID:???.net (+27,+4,-3)
    そのテーブル内ではキー
    105 : NAME IS - 2015/05/15(金) 20:40:12.36 ID:???.net (+107,+30,-46)
    >>102
    あなたが繰り返し言ってる「連携している」ってのは具体的にどういうこと?一致している以上に具体的な何かがあるんだよね
    それを言ってよ

    それが言えないんだったら俺様用語を勝ってに振り回してろとしか言えんよ
    106 : NAME IS - 2015/05/15(金) 21:58:02.52 ID:???.net (+64,+26,-12)
    >>105
    リレーショナル
    107 : NAME IS - 2015/05/16(土) 12:57:35.46 ID:???.net (-1,-29,-6)
    とりあえずcleate tableを晒してよ
    108 : NAME IS - 2015/05/16(土) 15:40:40.15 ID:???.net (+50,+27,-1)
    ○具体的に言え
    ×英訳しろ
    109 : NAME IS - 2015/05/16(土) 15:51:53.20 ID:???.net (+50,+22,-3)
    cleateって何なのか考えこんじゃったわ
    110 : NAME IS - 2015/05/16(土) 17:35:49.89 ID:???.net (+3,-30,-108)
    ERROR 1064 (42000): You have an error in your SQL syntax;
    check the manual that corresponds to your MySQL server version
    for the right syntax to use near 'cleate table
    111 : NAME IS - 2015/05/17(日) 06:33:33.11 ID:TEQ308yD.net (+22,+28,-7)
    制約しないで連携ってどうやんの?
    112 : NAME IS - 2015/05/17(日) 17:44:19.24 ID:???.net (+21,-30,-271)
    dead lockに関する質問です。
    mysql version: 5.6.12
    tx_isolation: REPEATABLE-READ

    create TABLE tmp ( id bigint(10) NOT NULL auto_increment, name varchar(128) NOT NULL, PRIMARY KEY(id),UNIQUE KEY uk_name (name)) ENGINE=InnoDB;
    insert into tmp values (null, "20");
    insert into tmp values (null, "30");

    この状態から以下の手順を1,2,3,4,5と実施すると手順5でdeadlockが発生します。
    こちらの原因はなんでしょうか?

    トランザクション1
    手順1
    begin;
    手順3
    insert into tmp values (null,"30"),(null, "35") ON DUPLICATE KEY UPDATE name = VALUES(name);
    手順5
    insert into tmp values (null,"10"),(null, "11") ON DUPLICATE KEY UPDATE name = VALUES(name);

    トランザクション2
    手順2
    begin;
    手順4
    insert into tmp values (null, "20"),(null,"25") ON DUPLICATE KEY UPDATE name = VALUES(name);
    113 : NAME IS - 2015/05/17(日) 17:55:16.57 ID:???.net (+57,+29,-24)
    外部キー制約をテーブルに定義しなくても結合はできるからそういうことでしょ
    114 : NAME IS - 2015/05/17(日) 23:43:49.31 ID:???.net (+30,+12,-13)
    外部結合ですね
    115 : NAME IS - 2015/05/18(月) 01:50:29.06 ID:???.net (+3,-25,-31)
    >>112
    insertとupdateしかしてないのにほんとかよとか思ってやってみたら再現したw
    なにこれw
    116 : NAME IS - 2015/05/18(月) 07:35:54.63 ID:???.net (+31,-29,-4)
    > name = VALUES(name);

    何をしたいのコレ?
    117 : NAME IS - 2015/05/18(月) 09:01:09.60 ID:???.net (+62,+29,-31)
    >>116
    データが存在するしないに関わらずデータを更新または挿入するためです
    こちらのことサンプルではほぼ無意味ですが、問題を簡素化して抜き出したものです
    118 : NAME IS - 2015/05/18(月) 15:15:46.67 ID:???.net (+0,-25,+0)
    >>111
    JOINとか
    119 : NAME IS - 2015/05/18(月) 15:54:30.71 ID:???.net (+55,+27,-6)
    JOIN してるだけで外部キーとか言わない方がいい、混乱するだけ
    120 : NAME IS - 2015/05/18(月) 16:23:54.41 ID:???.net (+57,+29,-23)
    制約かけるかどうかは置いといて
    そのキーを使って結合出来るならそれは外部キーでしょ
    121 : NAME IS - 2015/05/18(月) 16:25:07.44 ID:???.net (+50,+22,-4)
    そのキーを使って じゃなかった
    その属性を使って
    122 : NAME IS - 2015/05/18(月) 17:45:42.36 ID:???.net (+52,+29,-1)
    普通はそういう使い方しないから
    123 : NAME IS - 2015/05/18(月) 18:27:22.89 ID:???.net (+57,+29,-7)
    外部キーみたいに
    って最初から書いてるんだけどそこはスルーなのかな
    124 : NAME IS - 2015/05/18(月) 20:45:17.16 ID:???.net (+57,+29,-15)
    俺様用語好き勝手に振り回しておけ、ヴァカ
    125 : NAME IS - 2015/05/18(月) 21:18:17.59 ID:???.net (+75,+13,-5)
    そもそもJOINでカラム指定するのは制約だろ
    126 : NAME IS - 2015/05/18(月) 21:36:21.12 ID:???.net (+67,+29,-9)
    >>125
    そのカラムは何と呼ぶの?
    127 : NAME IS - 2015/05/18(月) 23:23:10.72 ID:???.net (+52,+29,-15)
    名乗るほどのもんじゃありやせん
    128 : NAME IS - 2015/05/19(火) 12:25:19.21 ID:???.net (+46,+23,+0)
    人呼んでカラムの大政
    130 : NAME IS - 2015/05/21(木) 13:20:38.73 ID:???.net (+57,+29,-35)
    コンピュータの全ての分野を網羅したい場合、何学科に行くのが良いでしょうか?
    情報科学科?電気電子工学科?物理学科?
    131 : NAME IS - 2015/05/21(木) 14:09:23.16 ID:???.net (+57,+29,-6)
    行くとこ行くとこにこの質問貼ってあってイラっとくるな
    133 : NAME IS - 2015/05/22(金) 07:31:02.87 ID:???.net (+16,-30,-16)
    select id from rank order by good-bad;
    135 : NAME IS - 2015/05/22(金) 12:20:46.66 ID:???.net (+59,+29,-2)
    >>133
    こんなことできるのか
    知らなかった
    136 : NAME IS - 2015/05/27(水) 12:58:31.25 ID:???.net (+2,-27,-41)
    >>112
    暗黙にロックがかかってるんでしょ。

    INSERT ... SELECT ...でもロックが
    かかるときがあるし、
    MySQL(InnoDB)のくせと思うしか
    ないのでは。
    137 : NAME IS - 2015/05/28(木) 16:32:07.98 ID:xXdnP8KR.net (+17,+27,-14)
    節子、それバグや
    139 : NAME IS - 2015/06/16(火) 21:05:42.91 ID:???.net (+36,+14,-4)
    DB設計を語るスレに行った方が良いんじゃね
    140 : NAME IS - 2015/06/16(火) 21:12:30.78 ID:taWzsqn+.net (-15,+29,+1)
    >>139
    ありがとうございます。行ってきます。
    141 : NAME IS - 2015/06/17(水) 19:42:10.31 ID:???.net (+3,-30,-127)
    全角数字、全角英字、全角ひらがな、全角カタカナ、漢字以外の文字が文字列内に含まれるか否かを判定したいです。
    下記select文で書くとすると、'?????'の箇所はどのような記述をすればよいでしょうか。

    select '文字列' regexp '?????'
    142 : NAME IS - 2015/06/18(木) 01:58:39.49 ID:???.net (+39,-30,-157)
    >>112
    手順3で name="30" を INSERT した時に、uk_name インデックスにおいて name="30" の参照先(PK)が
    新しい id に変わるじゃないですか。それによって、uk_name インデックスの name=20~30 の間に
    ギャップロックがかかってるみたいです。

    ですので、手順4で name="20" or name="25" を入れた時にロックの解除を待ち続けてしまうわけです。
    なお、name="15" とか name="40" とかはギャップロックの範囲外なのですぐに INSERT できます。

    uk_name はユニークキーなので、ロックをかけなくともファントムリードは起きえない
    気がするのですが、なんでギャップロックを取ってるのかはよくわかりません... だれか教えて

    なおこの不具合は、分離レベルを READ-COMMITTED にすると発生しません。
    143 : NAME IS - 2015/06/18(木) 12:58:57.38 ID:???.net (+63,+29,-10)
    >>142
    仕様だろ。
    コストに配慮して、広くロック
    しちゃうんだろ。
    144 : 岡村隆史「嫌なら - 2015/06/27(土) 07:21:04.81 ID:???.net (+63,+29,-118)
    新聞購読を止めて、月3000~4000円、年間36000~48000円の節約

    新聞にそのような金を払う価値はない

    ただでさえ要らない
    なぜなら新聞は国民の方を向いておらず、広告主のための報道しかしないからだ

    それに金を払って購読することは自らの首を絞める自殺行為に等しい
    145 : NAME IS - 2015/07/09(木) 21:02:21.42 ID:???.net (+32,-29,-31)
    確かInnoDBって普通の行updateでもテーブルロックかかるよね。
    where句でindexじゃないカラム指定してるとフルスキャンでテーブルロックされるとか
    146 : NAME IS - 2015/07/10(金) 12:51:35.54 ID:???.net (+62,+29,-26)
    >>145
    インデックスがないならしかたない。
    ロック対象レコードを特定してる
    時間は読めないししても不毛かも
    しれないし。

    悪くない判断だと思うけど。
    149 : NAME IS - 2015/07/12(日) 16:46:47.00 ID:m/JNPpU7.net (+49,+24,-5)
    テーブルのカラム名とデータはどうなっているの?
    150 : NAME IS - 2015/07/12(日) 18:41:44.05 ID:???.net (+20,-29,-9)
    select 列1 from テーブル where 列1 in (1, 2, 3)
    ←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / mysql スレッド一覧へ
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

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


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