のくす牧場
コンテンツ
牧場内検索
カウンタ
総計:127,062,307人
昨日: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
    103 : NAME IS - 2010/07/16(金) 18:04:21 ID:??? (-17,-30,-209)
    初心者質問ですみません。

    VistaにMySqlのODBCをインストールしようとしています。
    mysql-connector-odbc-5.1.6-win32.msiを実行した時は特にエラーもなく終わるのですが、
    ODBCアドミニストレータでDSNを追加しようとすると「ドライバのセットアッププログラムが
    見つかりません」「レジストリでコンポーネントが見つかりません」というエラーになります。
    (レジストリエディタにはMySQL AB\MySQL Connector/ODBC 5.1 というのはあります)

    気になったのが、ODBCアドミニストレータでドライバを選択するリストで
    "MySQL ODBC 5.1 Driver"の情報が名前以外表示されていないことです。

    考えられる原因は何で、どうすればDSNを追加できるようになるのでしょうか?
    104 : 103 - 2010/07/16(金) 19:10:58 ID:??? (-27,-30,-85)
    追記です。

    レジストリエディタを見たところ、ODBC\ODBCINST.INI配下にMySQL ODBC 5.1 Driver 
    というのがあるのですが、オープンエラーになって内容が見れません。
    この配下にdllファイルの設定ができるようなので、ここが更新されれば
    上手くいくような気がするのですが…
    106 : NAME IS - 2010/07/17(土) 23:19:29 ID:??? (-18,-10,+0)
    サポート
    107 : NAME IS - 2010/07/18(日) 11:44:12 ID:??? (-23,-25,-9)
    ソース共通だからダウンロードしてくれば商用版ビルドできるよ
    ログイン時のメッセージが変わります
    108 : 105 - 2010/07/18(日) 13:24:25 ID:??? (+33,+29,-49)
    >>106
    サポートだけなのですか?
    確かにMySQLの本とかでも商用版とフリー版でこういう機能が違うというような一覧など見かけたことはありませんが

    >>107
    そうなのですか
    それにログイン時のメッセージくらいなものなのですか・・・
    109 : NAME IS - 2010/07/18(日) 13:32:14 ID:??? (+18,+25,-3)
    ライセンス条項読めばいいんじゃね?
    110 : NAME IS - 2010/07/18(日) 16:21:53 ID:??? (+23,+26,-1)
    111 : NAME IS - 2010/07/18(日) 16:54:24 ID:??? (+27,+29,-6)
    http://www.softagency.co.jp/products/mysql/mysql_enterprise/

    http://www.softagency.co.jp/products/mysql/price/

    高いね・・・
    Basicなんて殆ど意味が無いような気もするけど
    112 : NAME IS - 2010/07/18(日) 17:45:36 ID:??? (-10,-8,-27)
    仕事でSIやってるならたいして高くないでしょ

    PostgreSQLの方が高い
    http://www.sraoss.co.jp/prod_serv/support/pgsql-mainte.php
    113 : NAME IS - 2010/07/18(日) 19:08:03 ID:??? (+25,+29,-10)
    そうかなぁ、1台だけだとまぁって感じだけど数台ともなるとコストも馬鹿にならないし
    114 : NAME IS - 2010/07/19(月) 08:50:14 ID:??? (+27,+29,-43)
    もう一人コード書きを雇おうか、ってときの選択肢なんだからこんなもんだろ。
    BASICは、サポート代ってより子守代か。
    116 : NAME IS - 2010/07/26(月) 06:19:32 ID:??? (-26,-29,-64)
    XAMPPをインストールしましたが
    5.1.41の日本語化がわかりません
    googleで検索してもやりかたがいまひとつ理解できませんでした

    5.0.41はできました
    my.cnfからmy.iniになってるし、どなたかわかるかたいませんか?
    117 : NAME IS - 2010/07/26(月) 12:25:46 ID:??? (-29,-30,-51)
    文字列 '1:00' は 60秒、'1:00:00' は3600秒と解釈させるにはどうしたらいいでしょうか。
    select time_to_sec('1:00');
    とすると、3600となってしまいますが、これを 60 と解釈してくれるオプションがあればいいのですが。
    120 : NAME IS - 2010/07/26(月) 19:38:40 ID:??? (-29,-30,+0)
    CentOSのMySQLを5.0系から5.1.49にアップデートしました。
    そして、service restart mysqldとしたところ、起動せず、ログに以下の記録が残っていました。
    100726 18:54:05 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended
    100726 18:54:50 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
    100726 18:54:50 [Note] Plugin 'InnoDB' is disabled.
    /usr/libexec/mysqld: Table 'mysql.plugin' doesn't exist
    100726 18:54:50 [ERROR] Can't open the mysql.plugin table. Please run mysql_upgrade to create it.
    100726 18:54:50 [ERROR] /usr/libexec/mysqld: unknown option '--skip-bdb'
    100726 18:54:50 [ERROR] Aborting
    100726 18:54:50 [Note] /usr/libexec/mysqld: Shutdown complete
    100726 18:54:50 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended
    書いてある通りに、mysql_upgradeをやってみたのですが、
    mysqlcheck: Got error: 2002: Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2) when trying to connect
    とでて、起動しませんでした。
    どうすれば起動するようになりますか?
    122 : NAME IS - 2010/07/29(木) 22:36:37 ID:ZaZ5fIWy (-14,+29,-164)
    更新・参照ともによく使いテーブルがあり、
    そのサイズが現在5GBあります。
    今後も増える見込みで、10G、20Gと増えていくのですが、
    このような場合、テーブルを分けた方が宜しいでしょうか?

    具体的には、同じ構造のテーブルに、データのサブカテゴリー別に振り分けるようなイメージです。
    DELETE、INSERTを繰り返すため、定期的な最適化が必要で、その為には一つ一つのテーブルが小さい方がメンテナンスを細かく行なうことができるので、メリットがあります。
    それと、今後サイズが更に増えた場合、処理速度が落ちないか心配です。

    アドバイスを頂けたら幸いです。どうぞ宜しくお願いします。
    123 : NAME IS - 2010/07/29(木) 22:44:26 ID:??? (+19,+29,-65)
    履歴データとかで、もう参照しないデータなら別テーブルに分ければいいと思うが、
    参照するデータを別テーブルに分けて、どうやって運用していくつもり?
    メリット以上にデメリットが多いんじゃないの?
    127 : NAME IS - 2010/07/30(金) 00:50:38 ID:??? (+2,+9,+0)
    ありがとうございます!
    128 : NAME IS - 2010/07/30(金) 01:02:23 ID:??? (+27,+29,-5)
    できました。スマートになりました。
    あとは速度的な問題ですが、検証してみたいと思います。
    129 : NAME IS - 2010/07/30(金) 02:03:10 ID:??? (+18,+25,+0)
    速度はほとんど変わりませんでした
    130 : NAME IS - 2010/07/30(金) 03:39:00 ID:??? (-29,-30,-40)
    もうひとつお願いします。

    SELECT a,b,c FROM table1 where EXISTS (SELECT * from table2 where a=hogehoge)

    これは
    テーブル table1 のカラムa と テーブル table2 のカラムhogehogeが合致するものを検索
    でよかったでしょうか。
    よろしくお願いします。
    131 : NAME IS - 2010/07/30(金) 03:40:03 ID:??? (+14,+13,-22)
    >>122
    典型的なパーティショニング機能の適用ケースだと思うけど
    http://dev.mysql.com/doc/refman/5.1/ja/partitioning.html
    132 : NAME IS - 2010/07/30(金) 03:40:42 ID:??? (-22,-30,-40)
    × SELECT a,b,c FROM table1 where EXISTS (SELECT * from table2 where a=hogehoge)
    ◯ SELECT a,b,c FROM table1 where EXISTS (SELECT * from table2 where hogehoge=a)

    に訂正します。
    134 : NAME IS - 2010/07/30(金) 04:10:02 ID:??? (+27,+27,-18)
    >>132
    評価式の左右がどっちとかRDBMSには関係ないよ
    136 : NAME IS - 2010/07/30(金) 10:01:16 ID:??? (+37,+29,-1)
    >>134
    オプティマイザに関係してくるでしょ
    137 : NAME IS - 2010/07/30(金) 11:33:47 ID:??? (+37,+29,-37)
    >>136
    いやー少なくとも今のバージョンは関係ないと思う

    オプティマイザは最初に推移律が成立するものを
    ゴリゴリ書き換えて、左右もそのときに直すはず
    だけど証拠がないので時間があったらソース確認してみる
    138 : NAME IS - 2010/07/30(金) 13:41:23 ID:eCwiMoLf (+31,+29,-57)
    >>131
    頂いた内容を拝見しましたが、とても便利な機能ですね。
    長く使っていましたが、初耳でした。もしかしてMySQLの開発者の方でしょうか?
    大変助かりました。早速来週から使ってみようと思います。

    これからも、ご活躍を願っております。
    139 : NAME IS - 2010/07/31(土) 21:54:54 ID:??? (-26,-29,-121)
    初歩的ですみません。
    ユーザ情報のテーブルを作成し、フィールドにパスワードの項目を追加したのですが、
    SHOW FIELDS FROM [テーブル名];
    としたときに、パスワードの列を****のように表示させることはできるのでしょうか?
    ぐぐってもMySQLの管理者パスワード関係のものばかりで、うまくヒットしないもので・・・。
    140 : NAME IS - 2010/07/31(土) 22:41:22 ID:??? (+27,+29,-19)
    パスワード見たくないなら、カラムにはハッシュ化後の値を書き込むよろし。
    141 : NAME IS - 2010/08/01(日) 05:55:34 ID:??? (+27,+29,-85)
    基本的にはINNER JOINって遅いんですかね?
    普通に抽出したものをperlなりphpなりで仕分けしたほうが断然早かったです。
    SQLの書き方が悪いのかなぁ
    142 : NAME IS - 2010/08/01(日) 06:15:32 ID:??? (-25,-29,-40)
    INNER JOIN *** ON (a = b)

    これだと a=b の条件にマッチしたものをjoinしますが
    逆にa = bが成立した場合はjoinしないという方法はありませんでしょうか
    !=だとインデックスが使われないので悩んでます
    143 : NAME IS - 2010/08/01(日) 06:44:55 ID:??? (+88,+29,-57)
    いろいろ調べましたらjoinが遅いのではなくて
    その後のorder byが遅いのがわかりました。
    joinしたものにはインデックスが適用されてないということですね。

    joinする前に予めソートしておけばと思うのですが
    そのような事は可能でしょうか。
    やり方を教えていただけると嬉しいです。
    144 : NAME IS - 2010/08/01(日) 09:42:35 ID:??? (+39,+29,-16)
    効果はあるみたいだよ。 >>143
    http://nippondanji.blogspot.com/2009/03/using-filesort.html

    ことによっちゃあ数百倍早いんだってさ。
    http://www.flatz.jp/archives/2199
    145 : NAME IS - 2010/08/01(日) 11:24:17 ID:??? (+15,+11,-151)
    >>142-143
    INNER JOIN *** ON (a != b)
    これってCROSS JOINしてその大部分の結果を使うのとおなじことでしょ。
    そうすると結合に関しては、インデックスは使わないというより使う意味が
    ないんじゃないかな。

    情報が少ないからエスパー混じるけど、ORDER BYで複数テーブルの
    フィールドしているのが原因かと。
    >>144読めば分かるけどテーブルを跨いでソートする場合、結合した大き
    な結果セットをソートするから遅くなる。
    一時テーブル(a, b)を作って、これにインデックスを張っておく。ORDER BY
    はこの一時テーブルのを指定して、この一時テーブルに対して結合するように
    すれば軽くなるかもしれない。
    146 : NAME IS - 2010/08/01(日) 12:08:00 ID:q3fWzOwJ (+29,+29,-24)
    ソートキーが一方のテーブルのフィールドのみからなって、そこにインデックスが
    ある場合が一番速いってことだろ、>>144は。
    つまりNestedLoop最強。
    147 : 143 - 2010/08/01(日) 13:59:47 ID:??? (-27,-30,-139)
    アドバイスありがとうございます。
    しかしながらやはりjoinよりexists(select~の方が
    100倍以上早かったです。
    SQLむずかすい;;(同じ結果を抽出するSQLを下に書きました)

    (遅い)
    SELECT a,b,c FROM t1
    INNER JOIN chk ON (Yid = Wid and Mid = '$id')
    where a = '1' and b = '2'
    order by Time DESC



    速い
    SELECT a,b,c FROM t1
    where
    EXISTS (SELECT * from chk where chk.Mid='$id' and chk.Yid = t1.c) and
    EXISTS (SELECT * from t1 where a = '1 and b = '1')
    order by Time DESC
    148 : 143 - 2010/08/01(日) 14:06:19 ID:??? (-27,-30,-43)
    訂正します
    速い
    SELECT a,b,c FROM t1
    where
    EXISTS (SELECT * from chk where chk.Mid='$id' and chk.Yid = t1.c) and
    a = '1 and b = '2'
    order by Time DESC

    でした。場合によっては1000倍違いました。
    150 : 143 - 2010/08/01(日) 15:10:10 ID:??? (-27,-30,-86)
    手打ち間違いしてしました。
    見にくいので再度張りました。何度もすみません。

    (遅い)
    SELECT a,b,c FROM t1
    INNER JOIN chk ON (Yid = t1.c and Mid = '$id')
    where a = '1' and b = '2'
    order by Time DESC



    速い
    SELECT a,b,c FROM t1
    where
    EXISTS (SELECT * from chk where chk.Mid='$id' and chk.Yid = t1.c) and
    where a = '1 and b = '2'
    order by Time DESC
    ←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / mysql スレッド一覧へ
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : - megab + 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

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


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