のくす牧場
コンテンツ
牧場内検索
カウンタ
総計:127,641,660人
昨日: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,-7)
> 「阿部」+「晋三」で検索、結果 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,+1)
>>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:??? (+76,+27,-6)
性条件って何?童貞とか?ww
409 : NAME IS - 2011/04/11(月) 20:12:09.37 ID:??? (+87,+15,+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,+10,+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,-20)
>>415じゃないけど、LIKE REVERSE('%/db/1295436346/') で前方一致になるからindexが効くという認識でよい?
418 : NAME IS - 2011/04/13(水) 16:12:52.44 ID:??? (+39,+8,+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:??? (+56,+28,-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:??? (+41,+13,-82)
何万件だろうが適切にindexが設定されてて単純なクエリーなら重くない。
今度はindexのサイズが問題になるが元のtableのレコード数だけで示すことはできない。
434 : NAME IS - 2011/04/15(金) 12:23:40.74 ID:??? (+21,-30,-177)
>>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,-3)
>>435
インデックス振らなきゃそんなもんだろ
437 : NAME IS - 2011/04/17(日) 16:25:50.37 ID:??? (+115,+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:??? (+57,-8,+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:??? (+4,-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,+27,-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:??? (+16,-24,-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,-87)
至って普通の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 スレッド一覧へ
スレッド評価: スレッド評価について
みんなの評価 :
タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

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


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