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

    私的良スレ書庫

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

    元スレ【この先一体】MySQL 総合 Part15【どうなるの】

    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
    651 : 647 - 2009/08/19(水) 13:00:14 ID:??? (+42,+16,+0)
    >>648
    ありがとう!
    654 : NAME IS - 2009/08/19(水) 14:38:14 ID:??? (+6,-29,-51)
    オレはLEFT JOINを多用しているけど、知人はINNER JOINを多用していると言われた。
    INNER JOINのほうが使いやすいのかな・・・
    もちろん状況にもよるだろうけど。
    655 : NAME IS - 2009/08/19(水) 16:03:34 ID:7XUHkeqC (-14,+29,-27)
    >>653,654
    うわー、すごい!
    聴いたことはあったんですが理解できなくて手を付けていませんでした。>JOIN
    こういう状況で使うんですね。 自分でもう一度確認し直します、ありがとうございました!
    656 : NAME IS - 2009/08/19(水) 17:53:56 ID:??? (+57,+29,-15)
    ほんとにJOINしたことなかったんだw
    がんばってください
    657 : NAME IS - 2009/08/19(水) 18:34:21 ID:??? (+8,-20,-37)
    >>654
    オレは、LEFT OUTER JOINばっかり。
    それだけといっても過言ではない。

    INNERとかCROSSとかいろいろあるけど、
    使うべきケースがまったくわかんね。orz
    658 : NAME IS - 2009/08/19(水) 18:45:57 ID:??? (+20,+26,-16)
    JOINとかサブクエリーとか覚えると世界が広がるからガンガレ
    661 : NAME IS - 2009/08/20(木) 20:28:37 ID:??? (+36,-30,-77)
    アスタリスクで書いたらそうなるね。
    手抜きしないで
    select t1.id, t1.hoge, t1.fuga, t2.foo, t2.bar
    と必要な列だけ書きましょう。
    ちなみにうちの会社では「select *」はコーディング規約で禁止されてます。
    662 : 652 - 2009/08/20(木) 20:56:57 ID:??? (+60,+29,-35)
    >>661
    それしかないんですか…
    全部で50個くらいカラムがあるんだけどそれでも個別に書いてくってことですよね?
    大変だなぁ。。
    とりあえずそうします、ありがとうございました。
    664 : NAME IS - 2009/08/20(木) 21:00:12 ID:oS//lB2K (+0,+29,-27)
    >>662
    そんなもん、クラス化(ライブラリか)しておいたらいいでしょう。
    また、最初の一発目も、desc テーブル名とかでカラムリストとって、
    整形すればさほど難しくはない。
    なにより、*で手抜きだけはするなと言うこと。それをやったら許さんぞ。
    665 : 652 - 2009/08/20(木) 21:10:59 ID:??? (+39,-30,-79)
    >>664
    クラス化っていうのはphpとかのプログラム側で関数化するってことですよね?(mysqlの用語ではなくて)
    >最初の一発目も、desc テーブル名とかでカラムリストとって
    ってなんですか?
    クラス内のクエリ文を手作業で、t1.col1,t1.col2,t1.col3,t1.col4,…って書いていく時に、
    テーブル構造を出力して見ながらやろうっていう事ですよね? 
    666 : NAME IS - 2009/08/20(木) 21:35:54 ID:??? (+102,+29,-78)
    >>665
    見ながらやるんじゃなくて、テーブル構造をコピペしてテキストエディタかなんかでマクロを使うか、
    sed等で置換するかして機械的な処理で整形してください。
    という意味です。がんばってね。ここで手を抜かないことが大事だよ。
    667 : 652 - 2009/08/20(木) 21:58:17 ID:??? (+71,+29,-2)
    >>666
    あー、なるほど! よくわかりました、ありがとう!
    668 : NAME IS - 2009/08/21(金) 12:21:52 ID:??? (+57,+29,-59)
    あちゃー
    オレも面倒なときはつい * を使ってしまうわw
    * と 個別にカラムを指定するのって速度的に違いはあるのかな?
    感覚的に * のほうが処理速度は速そうだけど・・・。
    669 : NAME IS - 2009/08/21(金) 12:36:16 ID:??? (+96,+29,-47)
    select対象列がすべてインデックスの中に入っていると、
    テーブルアクセスをスキップできるのでとても速い。
    select *してしまうと実テーブルを読まざるを得ない。

    カバーリングインデックスというテクニックです
    670 : NAME IS - 2009/08/21(金) 13:17:56 ID:??? (+70,+29,-27)
    >>669
    へえー、そう言う事情があるんですか
    今試してみたら両方のやり方で速度の差なかったけど、何十万件になると違いが出るんでしょうか。。
    どうもありがとう
    671 : NAME IS - 2009/08/21(金) 15:09:40 ID:??? (+57,+29,-7)
    テーブルがメモリに入りきらなくなるあたりから差が出るよ
    672 : NAME IS - 2009/08/25(火) 00:55:42 ID:??? (+3,-30,-122)
    MySQL 5.1 にて
    CREATE TABLE `word_count` (
    `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
    `word` varchar(12) NOT NULL,
    `count` int(10) unsigned NOT NULL,
    PRIMARY KEY (`id`),
    UNIQUE KEY `word` (`word`)
    )
    と言うテーブルで、
    select * from word_count where instr('ここに文章が入ります',word);
    を実行すると、key が使われなくて速度が出ません。
    もっと効率よくできる書き方はありませんか?
    673 : NAME IS - 2009/08/25(火) 10:04:35 ID:??? (-2,-29,-4)
    Tritonnでがんばってください
    http://qwik.jp/tritonn/
    674 : NAME IS - 2009/08/25(火) 10:07:40 ID:??? (-2,-29,-10)
    >>673
    全文検索とは逆のことがしたいのですよ。
    instr('words',word) を早くしたいのです。
    675 : NAME IS - 2009/08/25(火) 12:55:06 ID:??? (+52,+29,-4)
    全部見るしかないからむりじゃね
    676 : NAME IS - 2009/08/25(火) 13:06:55 ID:??? (+27,-29,-4)
    TRIEとか使えないの?
    677 : NAME IS - 2009/08/25(火) 13:45:02 ID:??? (+61,+29,-21)
    >>676
    http://dev.mysql.com/sources/doxygen/mysql-5.1/trie_8c-source.html
    これですか? ちょっと調べてみますが、具体的な使い方を教えていただけると助かります。
    678 : NAME IS - 2009/08/28(金) 12:45:48 ID:??? (+3,-30,-55)
    質問です

    MySQL5.4の機能であるBKAを使用したのだが
    併せてsennaの日本語全文検索機能も使いたいと思っています。

    5.4にはsennnaのパッチが当てられないので困っていますが
    対応方法ほか良い案などありますでしょうか。

    現在はTorittonの5.0,67を使ってますが外部結合が遅い・・・
    680 : NAME IS - 2009/08/29(土) 19:36:53 ID:??? (+9,-30,-123)
    トリガーについて教えてください
    MySQL 5.1.35 Windows を使って勉強中なんですけど

    table shouhin_master  ←マスターテーブル
    code int
    name varchar(20)

    delete_flg tinyint

    table data_tbl ←データテーブル
    code int
    data1


    外部制約でshouhin_masterからcodeを消した時
    data_tblの該当するcodeデータを消すようにはしているのですが。
    マスターテーブルのdelete_flg に9を立てた時にトリガーを使って
    data_tblの該当するcodeのデータを削除する事出来ますか?
    出来るとしたら、どういうトリガーを書けば良い?
    681 : NAME IS - 2009/08/29(土) 19:59:02 ID:??? (+52,+29,-53)
    >>679
    パフォーマンス試験じゃなければ、そういう構築例は仮想マシンでやればいいから1台あればいいんじゃね?
    682 : NAME IS - 2009/08/29(土) 23:59:26 ID:??? (+38,-30,-45)
    >>680
    NewとかOldとか使え
    begin
    if new.delete_flg = 9 then
     delete from data_tbl where code = new.code;
    end if;
    end
    683 : 名無しさん@そう - 2009/08/30(日) 06:00:50 ID:??? (+62,+29,-12)
    >>682
    ありがとうです。勉強させて頂きます。
    685 : 名無しさん@そう - 2009/08/30(日) 09:36:25 ID:??? (+12,-29,-6)

    userTblをJOINしてなきゃ、そりゃエラーになるだろう
    686 : 名無しさん@そう - 2009/08/30(日) 09:47:03 ID:8Tmsiy4Z (+19,+29,-10)
    どこでJOINしたら良いんでしょうか?
    3つまでの解説はよく見かけるんですが、4つ以上は見つけられなくて困ってます
    687 : 名無しさん@そう - 2009/08/30(日) 09:47:43 ID:8Tmsiy4Z (+21,+29,+0)
    お礼書き忘れた。
    >>685 ありがとうございます
    688 : 名無しさん@そう - 2009/08/30(日) 10:48:01 ID:??? (+35,-7,-11)
    どこでも何も、そのまま続けて書けばいい。
    FROM ~ JOIN ~ JOIN ~ JOIN ~
    解説以前に、まずはマニュアル読むべき。
    689 : 名無しさん@そう - 2009/08/30(日) 13:14:43 ID:8Tmsiy4Z (+24,+29,-6)
    >>688
    ありがとうございます
    ずっとマニュアルは読んでるんですが、どうも理解できなくて。。
    すみません、教えてください お願いします
    691 : 690 - 2009/08/30(日) 14:56:51 ID:LriVeEv0 (-20,+29,-22)
    コレってむしろphp側の問題ですねorz
    スレ違いでした。
    phpのスレで訊いてきます。
    692 : 名無しさん@そう - 2009/08/30(日) 16:39:53 ID:??? (+38,+15,-2)
    これが新手のマルチ投稿か
    693 : NAME IS - 2009/08/31(月) 16:21:21 ID:??? (+8,-29,-53)
    ランタイム情報の
    Slave_runningの値「ON」か「OFF」をmysqlで求めるには、
    どのようなクエリを渡せばいいのでしょうか?
    694 : NAME IS - 2009/08/31(月) 21:14:54 ID:??? (+2,-30,-49)
    show status like 'Slave_running';
    を、それぞれのプログラミング言語で
    select文と同じように実行すれば取れるよ。
    695 : 693 - 2009/08/31(月) 22:39:04 ID:??? (-1,-29,-25)
    >>694
    あ、ありがとうございます。
    とりあえずphpからクエリを投げてみることにします。
    phpmyadminばっかり使ってるとダメですね・・。
    696 : NAME IS - 2009/09/01(火) 18:48:52 ID:??? (+25,-30,-110)
    相談です。

    16桁の数字からなる商品番号を格納するカラムのデータ型は何がいいでしょうか?
    (1) BIGINT型で、16桁の整数として格納する
    (2) CHAR(16)型で、16個の文字からなる文字列として格納する

    (1)と(2)と、どちらが検索が速いでしょうか?
    データ件数は、10万~100万件程度です。

    アドバイスよろしくお願いします。
    697 : NAME IS - 2009/09/01(火) 19:02:40 ID:??? (+22,-13,-7)
    >>696
    64bitならもちろん、32bitでも、bigint のほうが早いはずだぜ。
    まぁ、やってみたら?
    698 : 696 - 2009/09/01(火) 21:00:44 ID:??? (+6,-29,-79)
    >>697
    アドバイス、ありがとうございます。
    16桁の商品番号の格納は、BIGINT型で行ってみます!(・∀・)

    一応ベンチマークも測ってみようと思って、今100万個のテストデータを作成中ですが、
    MySQL5のストアドプロシージャとかで、乱数を一気に100万個ぐらい作る方法ありますかね?
    =とりあえずPHPスクリプトで、5000個ずつINSERTしてます><
    699 : NAME IS - 2009/09/02(水) 15:23:36 ID:??? (+13,-30,-48)
    Tritonn使ってるんだけど

    Where ColName Like '%検索ワード%'

    Where match(ColName) against('検索ワード')
    って結果が違います

    これって正常なこと?
    何か根本的に間違ってたりしますか?
    700 : 699 - 2009/09/02(水) 15:45:21 ID:??? (+57,+29,-9)
    すまん、
    書き込んだ直前以降はちゃんと同じ値になってました。
    なんか構文間違ってたんだと思います。
    ←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / mysql スレッド一覧へ
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

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


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