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

    私的良スレ書庫

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

    元スレMySQL 総合 Part24

    mysql スレッド一覧へ / mysql とは? / 携帯版 / dat(gz)で取得 / トップメニュー
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。
    レスフィルター : (試験中)
    ←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitter
    351 : NAME IS - 2014/01/14(火) 12:19:47.09 ID:5XYg85D5.net (-20,+29,-17)
    それがなさそうなんだよねえ…。コード中1個所しかないし。
    引き続き調べ中ですが、再現が難しい感じです。
    352 : NAME IS - 2014/01/14(火) 12:52:58.14 ID:???.net (-4,-27,-5)
    データベースサーバは1台だよな
    353 : NAME IS - 2014/01/14(火) 16:19:13.50 ID:k7q4QSRl.net (+24,+29,-5)
    トランザクションレベルはどうなってんすか?
    354 : NAME IS - 2014/01/14(火) 16:26:11.87 ID:???.net (-1,-29,-42)
    実はInnoDBじゃない
    分離モードがREAD UNCOMITTED
    FOR UPDATEついてないSQLで取得したデータ見てる
    355 : NAME IS - 2014/01/14(火) 17:09:48.23 ID:???.net (+4,-28,-75)
    横やり失礼。
    先発のトランザクションが SELECT ~ FOR UPDATE している間、
    後発のトランザクションの読み込みを待たせたい場合は、
    後発のクエリに「LOCK IN SHARE MODE」をつければOKって認識であってますか?
    357 : NAME IS - 2014/01/14(火) 17:47:19.60 ID:???.net (-11,-29,-16)
    >>356
    SQL文のログは取って調べたのかな?
    アプリ側のコードとにらめっこしていてもしょうがないよ。

    [mysqld]
    log=ログファイル
    358 : NAME IS - 2014/01/15(水) 15:57:16.22 ID:???.net (+62,+29,-92)
    MySQLユーザ会 MariaDB分科会だってさ
    http://www.mysql.gr.jp/mysqlml/mysql/msg/16045

    MySQLユーザ会って何もしない利権狙いの親父集団だろ
    MariaDBの利権にも唾つけようと必死だな

    tutuiって2009年にも利権確保に動いて止めたけど
    http://tutui.net/
    また盛り上がってきたら動くようだ
    360 : NAME IS - 2014/01/17(金) 12:50:09.28 ID:???.net (+3,-30,-64)
    >>359
    お、まさにそれをやりたいと思ってた。
    できないんでしょうか。

    http://dev.mysql.com/doc/refman/5.1/ja/innodb-parameters.html#optvar_innodb_lock_wait_timeout
    http://blog.kimuradb.com/?eid=877250
    > これまではグローバルで全体の指定を変えなければならなかった処理がセッションで、その接続だけ変更できるようになり、かなり敷居が下がりしました。
    361 : NAME IS - 2014/01/19(日) 00:58:19.88 ID:???.net (+3,-30,-87)
    http://dev.mysql.com/doc/refman/5.1/en/innodb-parameters.html#sysvar_innodb_lock_wait_timeout
    > innodb_lock_wait_timeout applies to InnoDB row locks only. A MySQL table lock does not happen inside InnoDB and this timeout does not apply to waits for table locks.
    テーブルロックだと、この機能効かないってよ
    365 : NAME IS - 2014/01/19(日) 22:08:43.58 ID:???.net (-12,-29,-18)
    >>364
    そのLinuxのプログラムでデータを取り扱うのならlocalhostでいいんじゃね。
    366 : NAME IS - 2014/01/20(月) 21:00:44.21 ID:???.net (-3,-22,-2)
    >>364
    それMySQLの話ちゃうやろと思いつつ、 hostsとかその手のファイル、DNS次第。
    367 : NAME IS - 2014/01/22(水) 00:22:45.75 ID:???.net (+3,-30,-105)
    MySQLチームで募集中のプリセールスエンジニアは技術が重視されるので営業関連の経験は無くてもかまいません。ご興味のある方はDM下さい。 #mysql_jp

    We Are Hiring!! 業務急拡大中につきMySQLチームでは日本でプリセールスエンジニアを募集しています。
    ttps
    t.co / xUXSf2pO3C

    お前らの出番だぞw
    368 : NAME IS - 2014/01/22(水) 00:42:08.85 ID:???.net (+33,+15,+0)
    転職めんどい
    369 : NAME IS - 2014/01/23(木) 02:48:16.58 ID:???.net (+57,+29,-23)
    業務拡大じゃなくて
    人が逃げたから集めるようにみえて仕方がない
    370 : NAME IS - 2014/01/25(土) 01:36:12.00 ID:???.net (-6,-29,-15)
    Oracleの奴隷(プゲラ
    371 : NAME IS - 2014/01/27(月) 18:36:42.89 ID:???.net (+8,-29,-18)
    あるテーブルの主キーになってるserial型columnを他のテーブルで外部キーに指定しようとしてもできません。助けてください。
    372 : NAME IS - 2014/01/29(水) 20:58:51.13 ID:???.net (+52,+29,-2)
    そんなはずがない
    373 : NAME IS - 2014/01/29(水) 22:50:36.43 ID:???.net (+62,+29,-13)
    「他のテーブル」でインデックスも何も張ってないとかいうオチでは?
    374 : 371 - 2014/01/30(木) 23:41:25.25 ID:???.net (+6,-29,-1)
    たぶん>>373これでした。ありがとうございましたm(_ _ )m
    375 : NAME IS - 2014/01/30(木) 23:46:46.92 ID:???.net (+38,+20,+0)
    たぶん ってw
    376 : NAME IS - 2014/01/30(木) 23:48:02.54 ID:???.net (+57,+29,-7)
    おいおい大丈夫かよ・・・本職じゃないよな
    377 : NAME IS - 2014/02/06(木) 21:01:38.51 ID:???.net (-1,-29,-39)
    5.6で高スペックサーバでの性能が飛躍的に向上したな
    PostgreSQL抜き返したかな?
    378 : NAME IS - 2014/02/08(土) 17:53:27.37 ID:???.net (+47,-29,-59)
    innodbにphpmyadminで33000件のデータをインポートしたのですが、なせか表示は31000件です。移動ボタンで最後のページまで飛ぶと33000件目を含むデータが表示されます。これは仕様なのでしょうか?それともどこかを修正すれば表示を改善出来ますか?
    379 : NAME IS - 2014/02/08(土) 18:49:02.64 ID:???.net (-1,-29,-20)
    >>378
    今DBに登録されてるデータをinto outfile してインポートしたデータと比べてみてはどうでしょう。
    380 : NAME IS - 2014/02/08(土) 19:41:33.12 ID:???.net (-1,-29,-52)
    dbに 「33000件のデータをインポートし」てselect count(*)で33000件って出たらmysql側には問題なし
    php側の方がおかしいんでしょ
    381 : NAME IS - 2014/02/09(日) 18:26:20.52 ID:???.net (+1,-21,+0)
    phpがおかしい
    382 : NAME IS - 2014/02/10(月) 00:52:28.74 ID:???.net (+4,-30,-96)
    >>378
    phpMyAdmin で表示されるレコード数は、INFORMATION_SCHEMA というメタデータから引っ張ってきてるのですが、
    InnoDB では概算値となるため、実際のレコード数と phpMyAdmin 上で表示させる値に誤差が生じます。
    正確なレコード数を取得するには SELECT COUNT(1) FROM **** クエリを発行してください。
    383 : NAME IS - 2014/02/10(月) 11:31:04.11 ID:???.net (+63,+29,-6)
    >>378 です。
    皆さんありごとうこざいます。
    innodbの仕様だったんですね。
    安心しました。
    384 : NAME IS - 2014/02/12(水) 19:53:59.77 ID:???.net (+115,-30,-128)
    はじめまして、相談です。

    現在140万行あるテーブルに対して、以下のようなSQLを発行しています。
    SELECT word , x,y, last FROM table_test where first != 1 and prev1 = '予測' and prev2 = 'は' and prev3 = 'に' ORDER BY RAND() LIMIT 1
    こちらがテーブルです。
    /nox/remoteimages/36/7b/c2aa8f8b40192749efd6705db622.png (現時点で厳しい物があるため、わざと使用していないカラムがいくつかあります)

    SQL一回の結果が返ってくるまでに1.8秒ほど、大体10~20処理するので、1分前後かかっています。またこの先テーブルはますます大きくなります。
    インデックスを貼って見ましたが、あまり早くなりません。これぐらいが普通なのでしょうか。
    また、他に少しでも早くする方法はありますか?

    このテーブルの用途は、趣味で作っている人工無能です。
    385 : NAME IS - 2014/02/12(水) 21:03:54.10 ID:???.net (+69,+28,-40)
    >>384
    インデックスは、first, prev1, prev2, prev3 の複合インデックス張ってる?

    いまの主キー、インデックスも教えてくれないとわからん。
    あと1万行くらいのダンプデータがあると検証ができてなおよし。
    386 : 384 - 2014/02/12(水) 21:48:45.80 ID:RkkOXYbS.net (+21,-30,-161)
    >>384です。環境を忘れていました。
    xamppです。
    Apache/2.4.3 (Win32) OpenSSL/1.0.1c PHP/5.4.7
    Client API version mysqlnd 5.0.10 - 20111026
    です。

    >>385
    ありがとうございます。
    1万行のダンプデータというのはこれでいいでしょうか
    http://www.dotup.org/uploda/www.dotup.org4869465.sql

    複合INDEXを初めて聞いたので検索、実行してみました
    恐らくindex自体は作成されていると思うのですが、うまく使えない状態です
    387 : NAME IS - 2014/02/12(水) 21:57:28.07 ID:???.net (+3,-29,-68)
    WHERE条件で大量のデータが返るのならORDER BY RAND()ではなく
    対象件数を取得、その範囲の乱数を生成、LIMIT <乱数値>, 1とした方が早いかも。
    EXPLAINでインデックスが使用されているか調べることが先だけど。
    388 : NAME IS - 2014/02/12(水) 22:02:04.52 ID:???.net (+10,-29,-34)
    >>384
    可能であればdescの結果か、show create table の結果を貼ってください。
    389 : NAME IS - 2014/02/12(水) 22:04:40.54 ID:???.net (+60,+29,-6)
    >>386
    388です。すいません、更新してませんでした。
    ちょっとあっぷして頂いたデータでやってみます。
    390 : NAME IS - 2014/02/12(水) 22:06:23.20 ID:???.net (+0,+0,+0)
    mysql> desc cc_ai_c;
    +-----------------+-------------+------+-----+---------+-------+
    | Field | Type | Null | Key | Default | Extra |
    +-----------------+-------------+------+-----+---------+-------+
    | id | int(11) | NO | | 0 | |
    | word | varchar(10) | NO | | NULL | |
    | hinsi | varchar(10) | NO | | NULL | |
    | first | int(11) | NO | | NULL | |
    | last | int(11) | NO | | NULL | |
    | noudo | double | NO | | NULL | |
    | x | int(11) | NO | | NULL | |
    | y | int(11) | NO | | NULL | |
    | z | int(11) | NO | | NULL | |
    | next | varchar(10) | NO | | NULL | |
    | prev1 | varchar(10) | NO | | NULL | |
    | prev2 | varchar(10) | NO | | NULL | |
    | prev3 | varchar(10) | NO | | NULL | |
    | hinsisaibunrui1 | varchar(10) | NO | | NULL | |
    | hinsisaibunrui2 | varchar(10) | NO | | NULL | |
    | hinsisaibunrui3 | varchar(10) | NO | | NULL | |
    | katuyoukei | varchar(10) | NO | | NULL | |
    | katuyougata | varchar(10) | NO | | NULL | |
    | genkei | varchar(10) | NO | | NULL | |
    | yomi | varchar(10) | NO | | NULL | |
    | hatuon | varchar(10) | NO | | NULL | |
    +-----------------+-------------+------+-----+---------+-------+
    21 rows in set (0.01 sec)

    どう見てもインデックスがないんですが。
    391 : 384 - 2014/02/12(水) 22:15:51.66 ID:RkkOXYbS.net (+0,-30,-105)
    >>390
    すいません、すいません…
    indexってmysqlで「構造」のカラムにチェックして、インデックスをクリックすれば作れると思っていました

    そしてもうデータベースにもアクセスできずにどうしていいかわからないです…orz
    Fatal error: Maximum execution time of 30 seconds exceeded in C:\xampp\phpMyAdmin\libraries\session.inc.php on line 96

    ちょっと勉強してきます。。。
    392 : NAME IS - 2014/02/12(水) 22:22:13.58 ID:???.net (+57,+29,-6)
    なるほど、確かにインデックスを設定すれば15倍はやくなりそう
    393 : NAME IS - 2014/02/12(水) 22:27:06.84 ID:???.net (+0,-30,-122)
    >>391
    388です。
    1万件のデータで例にあったselectしてみたけど、0.07秒(初回)でした。
    CPUはAMDのE450というatom以下のCPUです。

    で、keyがよくわかんないから
    alter table cc_ai_c add key (first);
    alter table cc_ai_c add key (prev1);
    alter table cc_ai_c add key (prev2);
    alter table cc_ai_c add key (prev3);
    して同じselectしたら0.00秒でした。

    ちなみにクエリキャッシュは使ってないので、keyを設定するだけでも改善すると思います。
    394 : 384 - 2014/02/12(水) 23:22:10.38 ID:RkkOXYbS.net (+29,+29,-11)
    うおー!ありがとうございます!!凄まじく早くなりました。
    /nox/remoteimages/e6/8a/a9a1c3be8f97f2f15662833921cf.pngしばらくは問題なさそうです

    複合インデックス、今後も大事にします、ありがとうございました!
    395 : NAME IS - 2014/02/13(木) 12:37:46.60 ID:???.net (+62,+29,-43)
    「同時に1つのインデックスしか使えない」って仕様に引っかかりやすいよね。
    複合インデックスは頭からしか使えないからカラムの順序に注意。

    あとインデックスには指定したカラムに加え、主キーが入るってことも知っておくと役立つ。
    396 : NAME IS - 2014/02/13(木) 20:55:55.13 ID:???.net (+3,-30,-90)
    64bit版のRHEL6.4にバンドルされてる5.1.66で
    got signal 11
    のエラーがでてmysqlが再起動します。

    mysqlのバグで5.1.59以降では治ってるって書いてある
    サイトがあったんだけど、再発したんでしょうか?

    回避する方法ってなんかあります?
    397 : NAME IS - 2014/02/14(金) 22:22:54.64 ID:???.net (+48,-30,-179)
    ちょっとヒントがほしいです
    Using Index が表示されるのに、 Using temporary; Using filesort が出てしまうのは、設定ファイルがいけないのだろうか?

    EXPLAIN SELECT article_date,count(id)
    FROM `log`
    WHERE user = 4 and FIND_IN_SET(“aaa”,`category`) and date between ‘2013-01-01’ and ‘2013-12-31’ group by date

    複合は(user、category、date)に貼っていて、ちゃんとに使われている。
    398 : NAME IS - 2014/02/14(金) 23:30:34.76 ID:???.net (+4,-30,-117)
    >>397
    FIND_IN_SETのカラムにインデックスを張っても効率化されないと思う。
    関係者にごめんなさいして第一正規化するか、
    とりあえず妥協して複合インデックスを(user, date)に張ってみる。

    それからSELECT article_dateなのにGROUP BY dateとなっているが、
    転記ミスでなければこれはGROUP BYのよくない使い方。
    SET sql_mode = ONLY_FULL_GROUP_BY;
    で動くSQLに直してからチューニングを考えたほうがよいかも。
    399 : NAME IS - 2014/02/14(金) 23:34:59.20 ID:???.net (+63,+29,-51)
    >>397
    別になんの不思議もないと思いますが?
    インデックスを使ってレコードを絞り込めるが、
    それの集計やソートにテンポラリテーブルやクイックソートが必要ってことかと。
    400 : NAME IS - 2014/02/15(土) 14:10:54.99 ID:???.net (+36,-30,-35)
    urlを保存する時って
    1つのカラムに「http」削って
    ://~
    って保存するのと、「0=http://、1=https://、2=http://www」とかって定義して2つのカラムに
    1(int) 2
    0   yahoo.co.jp
    って保存するのでは後者の方がいいよね?みんなの保存方法を聞きたいです。
    ←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / mysql スレッド一覧へ
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

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


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