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

    私的良スレ書庫

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

    元スレMySQL 総合 Part14

    mysql スレッド一覧へ / mysql とは? / 携帯版 / dat(gz)で取得 / トップメニュー
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : - 1 + - mysqldump + - rXBUq5sa + - share + - utf8_bin + 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。
    レスフィルター : (試験中)
    ←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitter
    652 : NAME IS - 2008/10/16(木) 14:44:49 ID:naDhJJuw (+30,+30,+0)
    富山DQN男の家族消えろ 富山DQN男の親消えろ 富山DQN男の子供消えろ 富山DQN男の親戚消えろ
    富山DQN男の家族消えろ 富山DQN男の親消えろ 富山DQN男の子供消えろ 富山DQN男の親戚消えろ
    富山DQN男の家族消えろ 富山DQN男の親消えろ 富山DQN男の子供消えろ 富山DQN男の親戚消えろ
    富山DQN男の家族消えろ 富山DQN男の親消えろ 富山DQN男の子供消えろ 富山DQN男の親戚消えろ
    ニヤニヤ(・∀・) ニヤニヤ(・∀・) ニヤニヤ(・∀・) ニヤニヤ(・∀・)
    死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね
    死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね
    死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね
    死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね
    苦しんで死ね 苦しんで死ね 苦しんで死ね 苦しんで死ね 苦しんで死ね 苦しんで死ね 苦しんで死ね
    苦しんで死ね 苦しんで死ね 苦しんで死ね 苦しんで死ね 苦しんで死ね 苦しんで死ね 苦しんで死ね
    苦しんで死ね 苦しんで死ね 苦しんで死ね 苦しんで死ね 苦しんで死ね 苦しんで死ね 苦しんで死ね
    苦しんで死ね 苦しんで死ね 苦しんで死ね 苦しんで死ね 苦しんで死ね 苦しんで死ね 苦しんで死ね
    死ぬとき このレスの事思い出してから地獄へ行けよ
    ニヤ(・∀・)ニヤ(・∀・)
    653 : 627 - 2008/10/16(木) 15:07:03 ID:R1QWjYpq (+24,+29,-36)
    一応、解決策とはいえないまでもパーティショニングを行ったところ、かなりのパフォーマンス向上になりました。
    報告だけさせて頂きます。
    654 : NAME IS - 2008/10/16(木) 15:09:49 ID:??? (+27,+29,-26)
    何分割にしたかとかいくつに分けたとかドンくらい速くなったかとか
    レポートキボン
    655 : NAME IS - 2008/10/16(木) 15:25:33 ID:??? (+38,+29,-133)
    >>650
    いえ、困っていません。
    テストデータをselectしたときに気分が悪くなった、というだけです。
    誤った認識が心に疑問を投げかけていたのです。

    前述のカラム順序も実装させるプログラムではカラム名で取り出すので問題ありませんが、
    select * って書いたときにこれまでは一番左にpkeyがあったのに、今じゃ真ん中に
    pkeyがある、ってのがムカつくだけです。
    order byにしろカラムの順序にしろ、実用性に欠ける質問でごめんなさい。
    658 : NAME IS - 2008/10/16(木) 18:18:54 ID:mFFT7Z7j (-6,+29,-88)
    BINARYの解説に
    「文字セットを持たず、ソートと比較は値の中の数値バイトに基づいているという意味です。」
    というのがあるけどこれでしょうか?

    ということは、大文字と小文字をきっちり分けたいデータはソートがうまく出来ないってことでしょうか?
    これは日本語だけの問題ですか?
    もしかして、ソートしたいカラムは大文字・小文字の区別はつけられなのですか?
    661 : NAME IS - 2008/10/16(木) 20:22:41 ID:??? (-28,-30,-36)
    ごめん
    > VARCHAR(255) BINARY
    は4.1の文法だった。5.0でも正しい。
    collationがutf8_binになる。

    でもなんでそのデータでマトモに動いてるのかは
    まだ想像つかない。
    663 : NAME IS - 2008/10/17(金) 08:29:31 ID:??? (-19,-30,-59)
    load data infile で datetime型に"Oct 16 2008 12:00AM"このような形式の
    データを読み込みたいのですが可能でしょうか?
    普通にやると0000-00-00 00:00:00で読み込まれてしまいます

    MySQL5.0.67+CentOS5.2
    glibc2.3のgz形式のバイナリパッケージを使っています


    よろしくお願いいたします
    664 : NAME IS - 2008/10/17(金) 10:28:08 ID:??? (-27,-30,-180)
    >>663
    $ cat data.csv
    Oct 16 2008 12:00AM
    Nov 17 2008 04:00PM

    mysql> load data local infile 'data.csv'
    -> into table loadtest (@var1)
    -> set date = str_to_date(@var1, '%b %d %Y %h:%i%p');

    Query OK, 2 rows affected (0.00 sec)
    Records: 2 Deleted: 0 Skipped: 0 Warnings: 0

    mysql> select * from loadtest;
    +---------------------+
    | date |
    +---------------------+
    | 2008-10-16 00:00:00 |
    | 2008-11-17 16:00:00 |
    +---------------------+
    2 rows in set (0.00 sec)

    MySQLの認定試験にこの手の問題が出ます。
    665 : NAME IS - 2008/10/17(金) 12:41:24 ID:??? (-26,-24,-46)
    MySQLの認定試験って市場価値あるの?
    単に、OracleMasterのマネして金儲けしようとしているだけじゃないの?
    666 : NAME IS - 2008/10/17(金) 14:43:53 ID:??? (+33,+30,-121)
    技術者を雇う側からいうと、人事に話を通しやすいから、何であれ認定試験の資格があるとありがたい。
    「この人はよくできる人です」と「この人は××のゴールド認定技術者です」では、聞こえ方が全然違う。
    667 : 663 - 2008/10/17(金) 15:06:54 ID:??? (+8,+14,-1)
    >>664

    できました!
    どうもありがとうございました。
    668 : NAME IS - 2008/10/17(金) 16:08:33 ID:??? (+32,+29,-30)
    >>666
    「この人は、MySQLの認定技術者です」で、本当に聞こえがいいの?
    669 : NAME IS - 2008/10/17(金) 16:17:55 ID:??? (-27,-30,-55)
    grant文で権限をつけるデータベースを複数指定したい場合はどう知ればいいのでしょうか?
    grant all privileges on hoge,hoge2.* to 'hoge' identified by 'hogehoge';

    ,区切りでやってみましたが無理でした。
    670 : NAME IS - 2008/10/17(金) 16:23:48 ID:??? (-23,-21,-5)
    >データベースを複数指定したい場合
    ワイルドカード以外はできない。
    671 : NAME IS - 2008/10/17(金) 16:28:11 ID:??? (-24,-30,-28)
    >670さん
    ありがとうございます。
    以下のようにワイルドカードで指定してもできません。
    複数は無理なのでしょうか?

    grant all privileges on hoge*.* to 'hoge' identified by 'hogehoge';
    672 : NAME IS - 2008/10/17(金) 16:53:05 ID:??? (-21,-29,-86)
    100カラムあるテーブルと10カラムのテーブルが10こあるのでは
    どちらが効率的に select,insert,updateできるでしょうか?

    10カラムの方はselect時に個別(1テーブル)で事足りるものもありますしすべてを連結させる必要があるときもあります。
    型はtinyint~textまで含まれています。

    100個の方はビューを作るので擬似的に分けることはします。(なので管理がめんどくさいということはないです)
    673 : NAME IS - 2008/10/17(金) 17:10:21 ID:??? (+33,+28,-307)
    >>672
    ケースバイケース。
    てか効率だけで決めたら後々苦労するよ。

    SELECT対象が10カラムのテーブル1個で済む場合、100カラムのテーブルを
    使うよりもサイズが小さいためメモリのヒット率向上が見込まれる。
    ディスクI/Oが減るため性能がよい。

    SELECT対象テーブルが多いとだんだん悪くなる。

    10テーブルへのinsert、updateは整合性を取るためにbegin~endで囲む
    ことになる。気をつけないとデッドロックを起こす。

    InnoDBのページサイズは16KB。
    100カラムのテーブルはレコード長が伸びるため格納効率が悪くなる。
    例えばレコード長6KBだと2レコードだけ入って、4KBすきまができてしまう。

    MySQLはオプティマイザがあまり賢くないので多数のテーブルの結合は
    おすすめしない。10テーブル結合して数分返ってこなくても泣かないこと。

    まだまだ懸念点は出てくるはず
    まずは教科書通りに設計して、実機で検証すべき
    674 : NAME IS - 2008/10/17(金) 17:23:38 ID:??? (+5,+15,+0)
    >>671
    マニュアル見て。ttp://dev.mysql.com/doc/refman/5.0/en/grant.html
    675 : NAME IS - 2008/10/17(金) 17:43:29 ID:??? (+37,+29,-78)
    >>673
    ありがとうございます!
    とても参考になりました。

    InnoDBでした。後出しすみません。

    一緒に使うパラメータはなるべく一つにまとめようと思います。
    またすべてを使うことはあまりないので(管理時のみ)管理ページを改める方向でいきます。

    本当にありがとうございました。
    676 : NAME IS - 2008/10/17(金) 17:52:02 ID:??? (-29,-30,-182)
    create table test(
    id int unsigned not null auto_increment primary key,
    passwd varchar(32) not null);

    (たくさんのデータが入っていると仮定して)
    ここから下のSQLを流した場合、
    先にidを探してそのIDと合致するデータのpasswdの正否を判定するという認識で間違いないでしょうか?

    select 1 from test where id = 1 and passwd = 'example';

    一意なカラムがあるwhereにある場合は他の要素(この例だとpasswd)にindexを春必要はないでしょうか?
    もしくはpasswdにもindexなどをはったほうがいいでしょうか?
    678 : NAME IS - 2008/10/17(金) 18:03:48 ID:??? (+33,+29,-24)
    ただしそれ、インジェクションの典型的な例に出るやつだから注意ねw
    680 : NAME IS - 2008/10/17(金) 18:24:36 ID:??? (+32,+29,-8)
    >>678
    便乗で申し訳ないが、なぜそれがインジェクションになるの?
    681 : NAME IS - 2008/10/17(金) 18:48:26 ID:??? (-29,-30,-63)
    select 1 from test where id = 1 and passwd = 'example';
    これをexampleの部分に入るべき生データをユーザーの入力で、 ' OR 1 = 1 とかいれられて
    そのままSQLにしてしまうと、
    select 1 from test where id = 1 and passwd = '' OR 1 = 1;
    というSQLになって常に結果が見つかることになってしまう。
    684 : NAME IS - 2008/10/17(金) 22:17:24 ID:??? (+27,+29,-4)
    http://www.itmedia.co.jp/news/articles/0806/05/news047.html
    とか既出?
    ちょっぴり期待しています。
    686 : NAME IS - 2008/10/18(土) 21:56:21 ID:??? (+23,+29,-8)
    >>683
    データベース接続のラッパーにクオートさせてるだけだけど大丈夫か心配になってきた。
    689 : NAME IS - 2008/10/19(日) 11:46:28 ID:??? (+21,+18,-39)
    >SERVER アパッチ
    ということは、外から直接DBサーバに繋ぐのではなく、外からはhttp を叩き、apache が DBサーバを呼ぶ、という理解でいいのか?
    それなら、野外でノートと、とか何とか無関係では。
    690 : NAME IS - 2008/10/20(月) 15:31:22 ID:??? (-27,-30,-49)
    MySQL Clusterで、
    Server1: SQL-Node,Data-Node,Management-Node
    Server2: SQL-Node,Data-Node
    の構成で DBの HA構成を考えています。

    この時 Server1が死んでも Server2だけで稼動してくれますか?
    694 : NAME IS - 2008/10/20(月) 22:56:32 ID:??? (-27,-30,-262)
    はじめて、MySQLをいれたのですが、リモートのホストとPhpMyAdmin(3.0.0)との接続ができません。

    MySQLのバージョンは、
    Server version: 5.0.67 MySQL Community Server (GPL)

    apache 2.0.63
    PHP 5.2.6
    です。


    PhpMyAdminの設定後、アクセスしようとすると、以下のエラーが出ます。

    MySQLのメッセージ:

    #2002 - サーバが応答しません (あるいはローカルの MySQL サーバのソケットが正しく設定されていません)

    mysql 拡張をロードできません。PHP の設定を確認してください - ドキュメント


    ただし、以下の簡易スクリプトだとSuccess!とでます。
    <?php
    if(!$conn = mysqli_connect('xxxx', 'xxxxxxx', 'xxxxxxx','mysql')) {

    print "ConnectError";


    }else {

    print("success!") ;

    }

    ?>
    695 : NAME IS - 2008/10/21(火) 08:58:33 ID:??? (+2,-30,-137)
    インデックスの張り方で悩んでいます。
    pk access_date type
    pkは主キー、access_dateはdatetime型の更新日時(のようなもの)、
    typeは1~3とかの多くの行でかぶるカラム、です。

    このテーブルで
    select * from hoge
    where type = 1 /* とか */
    order by access_date
    limit 1 /* とか */
    こんなクエリをやっています。
    現在はaccess_dateとtypeにこの順で複合インデックスを貼っています。
    access_dateが古いところにtypeが1のものがあれば早く取り出せてると思うのですが、
    そうでない場合には頭から探してるようで遅いです。

    ○○調べてこいや、とかの助言でもいただけたらうれしいです。
    696 : NAME IS - 2008/10/21(火) 09:27:53 ID:??? (+50,+27,-14)
    EXPLAIN調べてこいや


    インデックスの張り方が多分逆の予感。
    697 : NAME IS - 2008/10/21(火) 10:05:52 ID:??? (-22,-29,-72)
    インデックスは指定したキーの順であらかじめソートした索引だと
    思えばいい。

    更新日時を先にもってきたらその順番で並んでしまうだけでその
    あとにtype持ってきても意味がないよ。秒まで同じ更新日時の
    レコードがtype別にまとまることになるが、そんなにはげしく更新
    されないだろ?

    type, access_dateの順のインデックスにすればtypeごとにaccess_date
    順で並ぶので、type=1の一番古いの一つさがすのは簡単になる。
    698 : 695 - 2008/10/21(火) 10:55:54 ID:??? (+30,+30,-119)
    >>696 >>697
    お返事ありがとうございます嬉しいです。
    やはりインデックスの順番が一番怪しいかなと思っていました。
    友達に聞いたらtypeにビットマップなインデックスはってみ、普通のやつじゃ意味ねーよ、
    って言われてmysqlじゃない話で落ち込んでました。
    再度インデックス張り直してきます。30分ぐらいで終わる予定です。みんなこれぐらいかけてるのかな・・・。

    ところで>>697氏のおっしゃる
    > 更新日時を先にもってきたらその順番で並んでしまうだけでその
    > あとにtype持ってきても意味がないよ。
    この辺の話っていうのは、mysqlのインデックスに限った話ですか?
    よければ参考書籍などを教えてもらえないでしょうか?
    ←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / mysql スレッド一覧へ
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : - 1 + - mysqldump + - rXBUq5sa + - share + - utf8_bin + 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

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


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