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

    私的良スレ書庫

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

    元スレMySQL 5.0

    mysql スレッド一覧へ / mysql とは? / 携帯版 / dat(gz)で取得 / トップメニュー
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。
    レスフィルター : (試験中)
    ←前へ 1 2 3 4 5 6 7 8 9 10 11 12 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitter
    351 : NAME IS - 2009/04/22(水) 01:34:01 ID:???.net (+57,+29,-14)
    今更潰すは、さすがに考えにくいんじゃないの。
    ポスグレに持っていかれるくらいなら、撒き餌として残すだろ。。たぶん。
    352 : NAME IS - 2009/04/22(水) 17:41:38 ID:???.net (+0,-28,-53)
    mysqlはoracleの下位バージョンとして開発し
    その上位バージョンとしてoracleを持ってくることで
    フリーと商用のシェア拡大を目指す
    353 : NAME IS - 2009/04/22(水) 23:11:23 ID:???.net (+57,+29,-25)
    MySQLの次期バージョンを出したり将来のビジョンを提示したりして
    今後も発展するんだ、安心だ、と思わせといて飼い殺す。
    354 : NAME IS - 2009/04/23(木) 05:37:34 ID:???.net (+25,-2,-16)
    oracleもタダで使う方法もあるしな
    355 : NAME IS - 2009/04/23(木) 10:48:53 ID:???.net (-2,-30,-63)
    win版の5.0.77-community-ntですがCSVエンジンを利用するにはどうすれば良いですか?
    show enginesでNOになってます。
    356 : NAME IS - 2009/04/28(火) 01:22:42 ID:+/FWF+FK.net (+24,+27,-42)
    MySQLのオラクルマスターを作ればMySQLに力を入れる
    MySQLのオラクルマスターを作らないならMySQLに力を入れない
    358 : NAME IS - 2009/04/28(火) 08:58:40 ID:???.net (+51,+29,-4)
    よくないよ
    どこか間違ってるよ
    359 : NAME IS - 2009/04/28(火) 09:00:39 ID:aHnBfSXl.net (-12,+29,-28)
    >>358
    最初に両方からSelectをやっとくと、その後片方がINSERTしたのがもう片方からすぐに
    見えるんだけど、なにか間違ってるんでしょうか?
    360 : NAME IS - 2009/04/28(火) 15:24:24 ID:???.net (+3,-30,-264)
    ■セッション1
    mysql> set transaction isolation level serializable;
    Query OK, 0 rows affected (0.00 sec)

    mysql> select * from test;
    Empty set (0.00 sec)

    ■セッション2
    mysql> set transaction isolation level serializable;
    Query OK, 0 rows affected (0.00 sec)

    mysql> select * from test;
    Empty set (0.00 sec)

    ■セッション1
    mysql> begin;
    Query OK, 0 rows affected (0.00 sec)

    mysql> insert into test values (1);
    Query OK, 1 row affected (0.00 sec)

    ■セッション2
    mysql> select * from test;
    Empty set (0.00 sec)

    みえないよ?
    361 : NAME IS - 2009/04/28(火) 22:31:31 ID:???.net (-3,-29,-5)
    >>359
    テーブルが InnoDB じゃなくて MyISAM になってるとか。
    363 : NAME IS - 2009/05/01(金) 03:24:22 ID:???.net (-6,-30,-106)
    >>362
    Table構成がそのはてなの質問と同じとして、id及びgoods_idに
    複合インデックスが貼ってあり、それがユニークか、Hit率がテーブル全体のレコード数より
    十分少なければ、order by descが早いんでないかな。
    もっと言うと、INDEX(id,goods_id,date)で複合インデックスがあればなおよし。

    でなくて、idとgoods_idの値が、レコード全体の多くにHitしてしまう場合は、
    そこにあるようにサブクエった方が早そうな感じ(もちろんdateにインデックスが貼ってあるとして)。
    364 : NAME IS - 2009/05/01(金) 17:12:12 ID:???.net (+4,-30,+0)
    質問ですが、

    以下の感じでやろうとしてます


    select 学生id ,出席日数,出席率 from 学生名簿
    left join 
    (select sum(出席) as 出席日数 , sum(round(出席数/365,2)) as 出席率 ,学生id from 出席簿
     where 学生id in ( select 学生id from 学生名簿 order by 学生名 limit 0,50) group by 学生id) as 出席データ on 出席データ.学生id=学生名簿.学生id
    order by 学生名 limit 0,50

    学生名簿(カラム):学生id(primarykey),学生名
    出席簿(カラム):学生id,日付,出席(enum(1,0))

    limitができれば高速になるんですが、ないとusingfilesortになります。
    mysqlでサブクエリにlimit発行できないので、なにかいい方法があればご教授願います。
    365 : NAME IS - 2009/05/01(金) 19:05:41 ID:???.net (+62,+29,-56)
    俺なら、状況に応じて以下のどれかで対応する。

    ・クエリキャッシュをアテにする
    ・バッチで予め計算しちゃう
    ・クエリを分割する
    ・テーブル分割をやめる
    ・全部抜いてから計算する
    ・そもそも高速化する必要があるか考える
    366 : NAME IS - 2009/05/02(土) 00:09:29 ID:???.net (+72,+30,-74)
    なあ、ちょっと真剣にマジで教えてほしい
    あるデータベースのプライマリキーをキャラクタ属性で設定することのデメリットって何だと思う?
    キーはINTにすんのが検索も早そうだし、多分そうなのかも知れんが納得できる理由がはっきりしない
    まあCHARだとコレーションで正しくソートされない可能性があったりCOUNTが正しくされないのかも知れないけど
    現場レベルでは盲目的に数値型にしてるような気もすんだよね
    何か論理的な理由を聞かせてもらえないか?
    367 : NAME IS - 2009/05/02(土) 00:12:02 ID:???.net (+67,+29,-31)
    >>366

    あんたの現場がすべてではないよ。

    単にDB設計をさぼってるだけで、
    安易に一意になるものということで連番振ってるだけでしょ。

    368 : NAME IS - 2009/05/02(土) 00:27:22 ID:???.net (-2,+19,-30)
    プライマリーキーはchar型かそれとも数値型か
    http://pc11.2ch.net/test/read.cgi/db/1156315045/
    369 : NAME IS - 2009/05/02(土) 00:36:49 ID:???.net (-1,-29,-48)
    >>364
    >( select 学生id from 学生名簿 order by 学生名 limit 0,50)
    一見するとこれいらないと思うんだが。
    371 : NAME IS - 2009/05/03(日) 09:13:50 ID:???.net (+57,+29,-35)
    変に括弧とかかかないで
    最適化はMySQLに任せてしまったほうがいい・・・はず
    372 : NAME IS - 2009/05/03(日) 22:18:47 ID:EMVU4nk/.net (+29,+29,-59)
    すみません。今日はじめてXAMPPからMySQLをインストールしたんですが
    デフォルトでパスワードが無い状態なので、掛けようと思うのですが、
    掛け方はいろいろ書いてあるのですが、みんなどこに書いているのかが分かりません。
    コマンドプロンプトかと思って入力しても、エラーがおこるのですが
    どこに入力したらよろしいのか教えてください
    373 : NAME IS - 2009/05/04(月) 00:04:54 ID:???.net (-6,-29,-111)
    >>370
    絶対に括弧で囲まないとだめ。
    joinするときの結合キーがそのテーブルのprimary keyなら結果は同じなんだけど、
    そうでない場合、括弧で囲む場合と、そうでない場合で結果がかわる。

    なぜかというと、括弧なしの場合、AとBをjoinした結果フェッチする行数が存在しない場合でも、
    BとCのleft joinを行うからだ。

    375 : NAME IS - 2009/05/04(月) 09:26:12 ID:???.net (-11,-29,-19)
    >>374
    mysql-bin.000008 かそれが置いてあるディレクトリにパーミッションがない。
    377 : NAME IS - 2009/05/05(火) 21:41:38 ID:???.net (+40,+26,-3)
    読んでそのままでは?
    379 : NAME IS - 2009/05/06(水) 15:32:14 ID:???.net (-3,-30,-31)
    >>370
    A left join ( B left join C on B.id=C.id ) on A.id=B.id
    380 : NAME IS - 2009/05/08(金) 04:03:39 ID:???.net (+51,+29,-1)
    >>379
    流石にそれはない
    383 : 362 - 2009/05/11(月) 16:32:24 ID:l33ZsoDq.net (+24,+29,-34)
    お礼遅れてすいません。ありがとうございます。
    やはり自分のところではorder by よりmaxのサブクエリを使った方が早いみたいでした。
    384 : NAME IS - 2009/05/11(月) 19:39:27 ID:gPGRNLrz.net (+0,+0,+0)
    selectの結果を保存するのは出来ない気がしてきたので、ストアドプロシージャの練習を兼ねて
    書いてみました。

    DELIMITER //
    CREATE PROCEDURE net_user_enable(IN myhost CHAR(64), IN myname CHAR(64), IN mypassword CHAR(64))
    BEGIN
    -- 1: USERテーブルにユーザとホストの組み合わせを追加
    INSERT INTO mysql.user VALUES (myhost,myname,PASSWORD(mypassword),'N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','','','','',0,0,0,0);
    -- 2: dbテーブルにホストを追加
    INSERT INTO mysql.db VALUES (myhost,'%',myname,'Y','Y','Y','Y','Y','Y','N','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y');
    FLUSH PRIVILEGES;
    END //
    DELIMITER ;

    -- こんな感じで使ってね。
    CALL net_user_enable('localhost','hoge','hogeのパスワード');
    386 : NAME IS - 2009/05/17(日) 08:44:42 ID:???.net (+23,-30,-143)
    database「hogedb」の中にテーブル「hoge」「age」「sage」を作ったのだが、
    うち一つはselect時にselect * from hogedb.hogeのようにデータベースを指定しないとエラーになる。
    なんで??
    エラー内容;
    RROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'hoge' at line 1
    387 : ワークベンチ - 2009/05/17(日) 08:48:02 ID:???.net (+3,-29,-113)
    Workbenchでテーブルを作成しました。ここからCREATE文のスクリプトを作成することは出来ますが
    ついでにInsert文のスクリプトも作成することは可能でしょうか?
    (テーブルのタブに「Inserts」というのがあり、ここで投入用のデータをエディタで書けるのだが、ここからどうすればスクリプトに落とせるのか不明)
    知ってたら教えて下さい
    388 : 386 - 2009/05/17(日) 08:59:05 ID:???.net (+3,-29,-42)
    http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9188.txt
    違ったデータベース名、テーブル名は関係なかった。よくよく見るとスクリプトでテーブルを作るときに警告が
    出てた。上にアップしたスクリプトは簡単なテーブルを3つ作るだけなのだが、何がおかしいのだろうか
    単純にselect * from order;がエラーになる。(データベース名を指定するとおk)
    389 : 386 - 2009/05/17(日) 10:38:07 ID:???.net (+57,+29,-3)
    予約語だった。。。知らなかった
    ちくしょー!!
    390 : NAME IS - 2009/05/17(日) 20:25:32 ID:vKUcKlyZ.net (+31,+29,-76)
    ユーザーがグループに所属していて、グループもまた別のグループに所属しているような階層構造になっている場合、
    どうやって所属情報をDBに入れるのが賢いの?
    上位グループに所属するユーザーを抽出するクエリがつくりにくいんだけど
    391 : NAME IS - 2009/05/17(日) 22:33:04 ID:???.net (-5,-28,-13)
    RDBMS向きじゃないね。
    392 : NAME IS - 2009/05/18(月) 00:00:52 ID:???.net (+0,-27,-26)
    >どうやって所属情報をDBに入れるのが賢いの?
    MySQL捨ててPostgreSQLに入れるのが賢い。
    393 : NAME IS - 2009/05/18(月) 06:05:35 ID:???.net (+52,+29,-2)
    何の問題も無いだろ
    394 : NAME IS - 2009/05/18(月) 07:09:02 ID:???.net (-1,-29,-61)
    Postgresは現行VerでもOracle風のconnect byが使える。
    もうすぐ出る次期VerではSQL99準拠のWITH RECURSIVEも
    使えるらしい。
    395 : NAME IS - 2009/05/18(月) 17:30:27 ID:???.net (+24,+6,+0)
    日本語でおk
    396 : NAME IS - 2009/05/18(月) 18:03:51 ID:???.net (+50,+26,-13)
    ツリーってDB入れるの無理だろ
    397 : NAME IS - 2009/05/18(月) 19:06:38 ID:???.net (+98,+30,+0)
    399 : NAME IS - 2009/05/19(火) 03:19:57 ID:???.net (+10,-29,-180)
    >>396
    そのためOracleとかでは階層問い合わせをするための独自の文法が定義
    されているし、標準SQLでもSQL99以降で再帰クエリを記述する文法が
    追加されている。
    こういった拡張を使うとツリーに対する検索とか>>390のクエリなんか
    はもっと簡単に書けるよ。

    で、フリーのRDBMSではPostgreSQLがこのあたりの拡張によく対応して
    いるから、一つの選択肢として紹介したわけで。
    http://lets.postgresql.jp/documents/technical/with_recursive/

    MySQLというか再帰が無いSQLで書く技もあるけど、結構な頭の体操。
    http://www.mysql.gr.jp/mysqlml/mysql/msg/12071
    400 : NAME IS - 2009/05/19(火) 03:37:21 ID:???.net (+57,+29,-16)
    随分なスロークエリの悪寒。。しんどいね。。
    ←前へ 1 2 3 4 5 6 7 8 9 10 11 12 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / mysql スレッド一覧へ
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

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


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