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

    私的良スレ書庫

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

    元スレMySQL 総合 Part19

    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
    401 : NAME IS - 2011/04/11(月) 16:48:01.58 ID:NUeUTNL+ (+32,+29,-88)
    テーブル member

    no 姓   名
    1 田中  角栄
    2 小泉  純一郎
    3 阿部
    4 福田
    5 小泉  太郎

    でselectで姓を検索するとき、レコードの「名」に値がある場合、
    それを検索対象に入れての完全一致の結果を得たいのですが、
    どう書けばいいんでしょうか?

    「小泉」で検索、結果 0
    「阿部」で検索、結果 1
    「阿部」+「晋三」で検索、結果 1
    「小泉」+「純一郎」で検索されたとき、結果 1

    こんな感じで結果を得たいのです
    わかりにくくてすみません…。
    402 : NAME IS - 2011/04/11(月) 16:56:56.94 ID:??? (+0,-28,-3)
    姓・名・姓名で3回select回せば?
    403 : NAME IS - 2011/04/11(月) 16:57:21.26 ID:??? (+16,-30,-12)
    インデックス使われないからあまりやりたくないけど
    select * from member
    where 姓 = '安部' and (名 is null or 名 = '晋三')
    でいいんじゃないの
    404 : NAME IS - 2011/04/11(月) 17:00:47.52 ID:??? (+56,+28,-8)
    > 「阿部」+「晋三」で検索、結果 1
    晋三が見当たらないんですが
    405 : NAME IS - 2011/04/11(月) 17:43:38.76 ID:??? (+44,+26,-1)
    だから、何?
    406 : NAME IS - 2011/04/11(月) 17:51:03.16 ID:NUeUTNL+ (+30,+29,+0)
    >>403
    それでいけそうです。ありがとうございます!
    407 : NAME IS - 2011/04/11(月) 17:58:07.62 ID:??? (-1,-29,-5)
    where 性=’性条件’ AND 名=’名条件’

    だけでいんじゃねーの。空白は空白
    408 : NAME IS - 2011/04/11(月) 18:03:16.85 ID:??? (+77,+26,-6)
    性条件って何?童貞とか?ww
    409 : NAME IS - 2011/04/11(月) 20:12:09.37 ID:??? (+89,+16,+1)
    >>408 私はあなたをSuitonしたいと本気で思いました。
    410 : NAME IS - 2011/04/11(月) 20:38:40.60 ID:??? (+69,+29,+0)
    >>409 そうですか。それならば謝罪いたしましょう
    411 : NAME IS - 2011/04/12(火) 15:34:34.53 ID:??? (+9,-29,-46)
    http://dev.mysql.com/doc/refman/5.1-olh/ja/create-index.html
    >たとえば、接頭辞の最大長は MyISAM テーブルでは 1000 バイト、InnoDB テーブルでは 767 バイトです。

    これはすなわちインデックスを張れる最大のサイズと解釈して良いのでしょうか?
    URLを格納するVarcharフィールドにインデックスを張りたいのですがこの制約に引っかかってしまうので困っています
    412 : NAME IS - 2011/04/12(火) 17:38:18.90 ID:??? (-1,-29,-2)
    MyISAMならFULLTEXTにすればいいんじゃないか
    413 : NAME IS - 2011/04/12(火) 20:13:57.90 ID:??? (+25,-30,-135)
    >>411
    そのページに書いてあるとおりにすればOK

    > col_name(length) 構文を使用してインデックス接頭辞長を指定することによって、
    > カラム値の先頭の部分のみを使用するインデックスを作成できます。

    CREATE TABLE test (c1 VARCHAR(1000));
    CREATE INDEX idx1 ON test (c1(200));
    414 : NAME IS - 2011/04/12(火) 23:19:09.60 ID:??? (+36,+9,+2)
    >>413
    ありがとうございます!
    415 : NAME IS - 2011/04/13(水) 10:44:32.60 ID:??? (+61,+29,-10)
    文字列のお尻で高速に検索かけたいときはどうしてますか?
    417 : NAME IS - 2011/04/13(水) 13:12:19.24 ID:??? (+27,-30,-21)
    >>415じゃないけど、LIKE REVERSE('%/db/1295436346/') で前方一致になるからindexが効くという認識でよい?
    418 : NAME IS - 2011/04/13(水) 16:12:52.44 ID:??? (+39,+9,+2)
    >>417
    YES
    419 : NAME IS - 2011/04/13(水) 18:42:53.61 ID:??? (+3,-29,+0)
    >>418
    Thank you, baby!
    420 : NAME IS - 2011/04/13(水) 19:01:45.24 ID:??? (+57,+29,-25)
    お尻を責めるならあらかじめひっくり返しておけ
    ということか。万事に通ずる法則だな。
    421 : NAME IS - 2011/04/13(水) 19:20:36.17 ID:??? (+52,+29,-17)
    一万件も同様の事があると思えんw
    422 : NAME IS - 2011/04/14(木) 16:01:32.32 ID:hMS2SY+z (+140,+29,-27)
    質問です
    mysqlって何件くらいのデータ数で重くなりますか?
    カラムにもよると思いますがおおよその答えでいいのでお願いします。
    423 : NAME IS - 2011/04/14(木) 16:30:58.56 ID:??? (+44,+21,+0)
    カラムによります。
    424 : NAME IS - 2011/04/14(木) 17:59:29.91 ID:??? (+65,-2,-1)
    >>422
    1件より2件の方が重いです。
    425 : 422 - 2011/04/14(木) 20:32:50.06 ID:hMS2SY+z (+61,+29,-38)
    まあ答えるの難しいよね
    なんて質問したらいいのかな
    でも言いたいことはわかるよね?
    426 : NAME IS - 2011/04/14(木) 20:51:15.72 ID:??? (+87,+29,-28)
    >>425
    適切な例を示せばいいんだよ。

    そうすれば今度は「実測しろ」って言われるから。
    427 : NAME IS - 2011/04/14(木) 22:07:37.76 ID:??? (+57,+29,-15)
    とりあえず、メモリに入り切るかどうかだろ。
    428 : NAME IS - 2011/04/14(木) 22:11:56.89 ID:??? (+106,+29,-3)
    >>422
    沢山だと重い。少なければ重くない。
    429 : 422 - 2011/04/14(木) 22:54:11.36 ID:hMS2SY+z (+44,+30,-22)
    >>426
    実測とかそんな高等テクニック持ってないし
    ググっても見つからないからここで聞いてる
    例を出して聞くと揚げ足取られるからなかなか難しいんですよ
    でもこれって誰もが聞きたいことじゃないかな?
    430 : NAME IS - 2011/04/14(木) 23:00:55.05 ID:??? (+71,+29,-6)
    回答出てるじゃん、>>424とか>>428とか。
    これじゃ不満なわけ?
    431 : NAME IS - 2011/04/14(木) 23:16:07.87 ID:??? (+57,+29,-20)
    自分でやってみればいいのに
    メモリやCPUによっても変わってくるし答えようが無い
    432 : NAME IS - 2011/04/14(木) 23:30:28.80 ID:??? (+75,+29,-10)
    >>422
    100万件ぐらいまでならたいしたこと無い
    ってどこかの大規模サイトの人がゆってた
    433 : NAME IS - 2011/04/15(金) 02:57:12.92 ID:??? (+43,+15,-82)
    何万件だろうが適切にindexが設定されてて単純なクエリーなら重くない。
    今度はindexのサイズが問題になるが元のtableのレコード数だけで示すことはできない。
    434 : NAME IS - 2011/04/15(金) 12:23:40.74 ID:??? (+21,-30,-176)
    >>422
    150万件くらいのデータと8000件くらいのデータ、innodb。
    SELECTでJOINあり、条件あり。
    my.cnfデフォで95秒くらい。

    innodb_buffer_pool_size = 6G
    query_cache_size = 64M
    sort_buffer_size = 64M
    join_buffer_size = 64M
    とかで、3秒弱。

    インデックスを使うようにすると、どちらも一瞬で終わる。

    パフォーマンスはデータベースの設計により大きく左右されるが、最近のマシン(メモリ4Gとか)だと、
    ほとんどをメモリに乗っかるようにしておけば、何も考えなくても数百万件くらいなら余裕なんじゃなかろうか。
    435 : NAME IS - 2011/04/15(金) 14:31:48.42 ID:??? (+86,+29,-3)
    3秒って、そりゃまた随分と遅いなぁ
    436 : NAME IS - 2011/04/15(金) 14:36:04.22 ID:??? (+69,+29,-2)
    >>435
    インデックス振らなきゃそんなもんだろ
    437 : NAME IS - 2011/04/17(日) 16:25:50.37 ID:??? (+116,+29,-58)
    よくデータをメモリに全部乗っけるという表現がなされますが、具体的にはどうすればいいのでしょうか?
    ストレージエンジンをMemoryにするわけでは無いですよね
    MyISAMのバッファをデータサイズ以上に設定しておけばOSが勝手にやってくれたりするのでしょうか
    438 : NAME IS - 2011/04/17(日) 18:29:15.37 ID:??? (+70,+29,-39)
    >>437
    あぁ、それウソだから。
    データを全部メモリに乗せるなんて現代の技術では不可能だから。
    デマに惑わされないように気をつけたほうがいいよ。
    439 : NAME IS - 2011/04/17(日) 22:03:15.08 ID:??? (-1,-29,-23)
    ORDER BYでDESCとASCが両方あるときはどうしたらいいの?
    440 : NAME IS - 2011/04/17(日) 22:13:35.21 ID:??? (-1,-29,-13)
    ORDER BY a DESC, b ASC,c DESC
    441 : NAME IS - 2011/04/17(日) 22:21:05.41 ID:??? (+55,-9,+0)
    トホホな質問が続きます
    442 : NAME IS - 2011/04/17(日) 23:05:39.08 ID:??? (+9,-16,-1)
    >>441
    http://www.tohoho-web.com/
    を参照ください。
    443 : NAME IS - 2011/04/17(日) 23:19:13.15 ID:??? (+5,-29,-37)
    質問端折り過ぎた
    ORDER BYでDESCとASCが両方あるとき
    インデックスが効かないんだけどどうしたらいいの?
    444 : NAME IS - 2011/04/17(日) 23:27:07.02 ID:??? (+56,+28,-6)
    仮に、両カラムをDESCに揃えたらインデックス利くの?
    445 : NAME IS - 2011/04/17(日) 23:48:00.42 ID:??? (+65,+29,-11)
    >>441
    低レベルSQL講座が始まってんだよ
    察してやれ

    アホ担当の方、さあ出番ですよ
    ガムバって
    446 : NAME IS - 2011/04/18(月) 00:19:30.20 ID:??? (+92,+28,-44)
    知っているかたがいらしたら教えてほしいのですが、
    UNIQUE キーは SELECT 文等でも使われるのでしょうか。

    それとも、重複チェックに使われるだけで、
    INDEX キーのようには使われないのでしょうか。
    447 : NAME IS - 2011/04/18(月) 00:30:56.04 ID:??? (+64,-24,-1)
    >>446
    MySQLでは使われる
    448 : NAME IS - 2011/04/18(月) 00:32:13.22 ID:??? (+17,-23,-35)
    >>443
    インデックス格納順にアクセスすることにより
    ソート処理を省く最適化のことを言っているなら、
    ASCとDESC混ぜたらどうしようもないと思う
    449 : NAME IS - 2011/04/18(月) 00:41:50.82 ID:??? (+88,+29,-7)
    >>447-448
    良く知りもしないで適当なこと言ってんじゃねぇよw
    450 : NAME IS - 2011/04/18(月) 06:00:35.97 ID:??? (+33,-29,-86)
    至って普通のLAMP構成でアプリ動かしてますが
    MySQL5.1.50 InnoDBプラグイン使用で
    スローログを見てると単純にINSERTするだけのログテーブルのINSERTに時間がかかっています
    これは何が原因なのでしょうか
    レコード数は現在800万程度です
    ←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / mysql スレッド一覧へ
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

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


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