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

    私的良スレ書庫

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

    元スレ【MySQL】下らねぇ質問はID出して書き込みやがれ 2

    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
    701 : NAME IS - 2012/07/02(月) 14:35:12.28 ID:??? (+41,+29,-65)
    >>700
    日本語だと単語境界が上手く判定しづらいってことで、
    2文字ずつにトークナイズするのが主流っぽい。

    プラグインを入れられる環境ならmroongaを使えば、特にSQLをいじらずにその辺を上手くやってくれるらしい。
    ただしよく落ちると知り合いが嘆いてる。

    SQLを書き換えても良いなら"MySQL 転置インデックス"でググるとヒントがあるかも。
    ただしすごく重いと知り合いは嘆いてる。

    俺はどっちも試してない。。(´・ω・`) ごめんよ。
    702 : NAME IS - 2012/07/03(火) 21:32:54.68 ID:??? (+29,+25,+2)
    >>701
    ありがとうございます。参考になりました。
    704 : 703 - 2012/07/03(火) 22:08:02.90 ID:??? (-27,-30,-53)
    すみません。それと、item_id = 3, 2はこの順番になるようにしたいです。
    (CASE WHEN item_id = 3 or item_id = 2 THEN 1 ELSE 0 END) DESC
    と書ければすこしはマシになるのですが。
    707 : NAME IS - 2012/07/10(火) 20:59:30.35 ID:??? (+27,+29,-74)
    ?のバージョンで統計情報の収集を行い、その後、統計情報が正しく実行出来たか確認する方法を教えて下さい。
    なお、アナライズ実行時の返り値以外の方法でお願いします
    709 : NAME IS - 2012/07/10(火) 22:51:42.31 ID:??? (+33,+30,+0)
    多分ない
    まず、各コネクションは独立して、不可侵なことが保証されているので、
    統計情報の更新を実行したコネクション以外状況は判断できない。
    後から確認したいなら、どこかにログを残しておくぐらいかな。

    まぁ、統計情報更新クエリがDB障害によりエラーになった場合は
    MySQLログに出力される可能性はあるので、ログを監視すれば
    分かるかもしれないが、そういう時は統計情報以前にDBがおかしい。

    質問の趣旨が「統計情報が不正確でオプティマイザが正常に判断できない」
    というものなら、「そういうものです」。
    統計情報はMySQLに限らずほとんどのRDBMSがサンプリングで行うので、
    サンプルで取り上げられたデータの偏りで決まってしまう。
    普通は保存データ量が増えるに従いデータの中身も程よく分散してくるので、
    オプティマイザも正しく判断するようになります。

    全データを網羅して統計情報を構築するRDBMSってあるのかな?
    711 : NAME IS - 2012/07/14(土) 17:10:18.97 ID:??? (-28,-29,-6)
    管理ツールのお勧めってありますか?

    adminer あたりにしようかと思ってますが
    712 : NAME IS - 2012/07/14(土) 23:49:25.21 ID:??? (+10,+21,-11)
    >>711
    ゴキブリってどや
    713 : NAME IS - 2012/07/15(日) 01:42:22.33 ID:RrRsvsQU (+74,+29,-52)
    ttp://multip.net/view/giZtiUaM5q

    大津イジメ自殺のアレで、
    小網武里のイジメ証拠動画がアップきた!!!

    撮影者は不明。

    つか、これ傷害罪確定だろ。

    こんなこと毎日されたら、そりゃ自殺するな。

    なお、画像なんかは拡散OKっす。
    714 : NAME IS - 2012/07/16(月) 16:59:31.68 ID:??? (-10,-30,-72)
    table(
    uid int unique,
    tid int
    )

    SELECT * FROM table;

    でリクエストした時、例えばリクエスト結果の中に tid=AAA が何番目にあるかを
    知る方法ってあるんでしょうか?
    716 : NAME IS - 2012/07/17(火) 16:22:35.05 ID:??? (+27,+29,-9)
    OS,バージョンとかデータベースやテーブルの日本語の設定はどうなっているかとか情報を全然出さずに
    719 : NAME IS - 2012/07/17(火) 16:55:32.35 ID:??? (-28,-30,-71)
    >>714
    結果セット内の順番を知りたいというのはアプローチが誤っている
    なぜ知りたいのか、その目的を書くべき

    >>718
    クライアント側の文字コードを変更する方法がある
    mysql> set character set cp932;
    720 : NAME IS - 2012/07/17(火) 22:53:28.49 ID:??? (-27,-30,-126)
    >>714
    ごめん、下策しか思いつかなかった。

    SET @a:=0; SELECT * FROM (SELECT @a:=@a+1 AS rownum,`table`.* FROM `table`) AS dummy WHERE tid = ..;

    1. tableを2回フルスキャンするからすごく重い
    2. テンポラリテーブルを使うので、max_heap_table_sizeとtmp_table_sizeをそれなりの値にしないとMyISAMに変換されて更に重い
    3. tidにINDEXが貼ってあってもサブクエリ化するので利かなくなる
    721 : NAME IS - 2012/07/18(水) 02:08:46.73 ID:??? (+39,+30,-117)
    >>719
    MySQL の勉強を兼ねて Twitter のようなものを作っているのですが、レス先の前後 (実際にはレスされた一覧の表示は
    30件ずつ表示してて、それらはページ単位で扱っています) を表示したいと考えています。

    1つの発言に数千、数万のレスが付く可能性も現実としてありえるということを考えた場合に、
    プログラム側で無駄なループを省きたいため、指定したカラム中の値が一致した行が結果の中の何番目に
    あるのかと言うのを知れたらなと。考えていました。


    >>720
    勉強しはじめたばかりなのでパッと見理解出来ないので、じっくり解読してみます。
    ありがとうございます。
    722 : NAME IS - 2012/07/18(水) 13:00:29.89 ID:??? (+30,+28,-3)
    >>721
    日時カラムを持って、日時でソートすればええんでわ。
    723 : NAME IS - 2012/07/18(水) 14:10:49.29 ID:??? (-6,-29,-89)
    入門書を読みながら、XAMPPでMySQLをはじめたのですが、
    テーブルにレコードを追加するSQL文(INSERT INTO~)を実行しても「返り値が空でした。」となってしまい、レコードが追加されません。

    どのような原因が考えられますでしょうか?
    725 : NAME IS - 2012/07/18(水) 16:15:22.78 ID:??? (+38,+29,-44)
    それはMySQLのコンソールで直やってみたのか、それともPHP経由とかのどっち?
    MySQLのコンソールで直やってみて駄目っていうなら入力間違いだし、直でならOKっていうなら
    PHPとかの設定間違いなんだろうし
    726 : NAME IS - 2012/07/18(水) 16:43:29.10 ID:??? (+35,+29,-41)
    >>721
    結果セット内での位置がわかったところで
    結局は一度全部取得しなきゃならないわけで、
    取得するに主キーをハッシュキーにしたハッシュテーブルを一緒に組み立てて
    逆引き出来るようにしたらいいじゃないかな
    729 : NAME IS - 2012/07/18(水) 19:33:17.61 ID:??? (+27,+29,-6)
    アドバイスもらいたいなら、どう「おかしく」なったのかちゃんと書こう
    730 : 714 - 2012/07/18(水) 22:00:43.87 ID:??? (-22,-30,-62)
    >>726
    こうやってスレを見てると、ループで回すのが普通って感じがしてきました。


    質問を重ねて申し訳無いのですが、

    select * from table where tid='AAA';

    としようとする時、tid='AAA' を含む、tid='AAA' の前後 10 件を取得する。

    と言ったのは、どう書けば良いのでしょうか?
    731 : 714 - 2012/07/18(水) 22:42:04.31 ID:??? (+27,+29,-21)
    ググッてたら、order を使えば前後が取得出来そうですね

    SQL って発想力必要だなぁ
    733 : 723 - 2012/07/21(土) 15:52:25.48 ID:??? (+38,+29,-27)
    >>725
    遅レスすみません。自己解決しました。
    SQLに直だったのですが、入力するフォームが違っていたようです。
    SERECTなどの形式がボタンを押すだけで出てくるフォームがあったので、
    そこかと思っていたのですが、違いました。なぜそこではダメだったのかは未だ謎です。
    735 : NAME IS - 2012/07/22(日) 06:53:11.91 ID:??? (-29,-29,-28)
    非同期で SQL を発行しない限り、実行時間は PHP > MySQL である。

    PHP の時間時間の制限を php.ini に書けば良い。
    ただし Apach のタイムアウトもあるから、気を付けて。
    737 : NAME IS - 2012/07/24(火) 22:35:48.73 ID:??? (+23,+29,-36)
    >>734
    PHPはまったく知らんで言うが、
    alarmは使えないの?
    Perlだったらきっとそうするところ。
    738 : 734 - 2012/07/24(火) 23:34:46.67 ID:BXivuFmq (+27,+29,-13)
    >>737
    ご回答頂きまして、ありがとうございます。
    調べてみましたがphpでは、「alarm」のようなタイマー(スケジューラー)関数は無いようです。
    744 : 740 - 2012/07/26(木) 14:51:31.46 ID:AwMJ+F5s (-16,+29,-25)
    >>742
    レスありがとうございます。
    ご推察の通り、原因はテーブルロック時に行われる暗黙のCOMMITにありました。
    自動コミット機能をオフにすることで、高速に動作させることが出来ました。
    ありがとうございました本当に助かりました!
    746 : NAME IS - 2012/07/26(木) 14:58:45.74 ID:??? (+25,+29,-4)
    >>744
    おまけのつもりだったんだけど、助けになれたなら良かった!
    747 : 741 - 2012/07/26(木) 16:29:18.45 ID:PX3MqUQ9 (-26,+29,-11)
    >>745
    UNIONでって事ですね。
    理解しました。
    20個行とかになってしまうので、ちょっと厳しいですね。

    テンポラリで対応する事にします。
    ありがとうございました。
    749 : NAME IS - 2012/08/01(水) 22:38:19.27 ID:??? (+31,-30,-187)
    tritonnとphp、IISを使用した検索システムがあります。
    タスクを使用して朝と昼にoracleのテーブルを基にmysqlにテーブルを作成する運用をしています。

    テーブル作成直後は検索効率が落ちるため、select * from db1をぶちこんで全てのレコードを
    テーブルにキャッシュさせるようにしたいのですが、タスクスケジューラやbat処理では
    自動でキャッシュされなくて困っています。

    現状batファイルと同じ内容を記述したphpを実行させるボタンをページに作成しておき、
    クリックしてキャッシュさせています。

    違いといえばcmdが絡むので、shiftjisを経由していることくらいなのですが、
    select文実行前にはutf8を使用するようには記述しています。
    ご助言をいただけると助かります。
    750 : 749 - 2012/08/01(水) 22:42:42.81 ID:JN6avP4B (-4,+5,+1)
    sage消し忘れました。
    ←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / mysql スレッド一覧へ
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

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


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