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

    私的良スレ書庫

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

    元スレMySQL 総合 Part20

    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
    951 : NAME IS - 2011/10/13(木) 03:04:12.54 ID:??? (+9,-30,-188)
    わからんー。たすけてくれー。

    # mysql -u ユーザー名 -p -h ホスト名 DB名 < c:\mysql\data\insert.sql

    すると

    bash: c:mysqldatainsert.sql: そのようなファイルやディレクトリはありません

    て言われるー

    mysql> use DB名
    Database changed

    mysql> SOURCE c:\mysql\data\insert.sql

    すると

    ERROR:
    Failed to open file 'c:\mysql\data\insert.sql', error: 2

    て言われるー。でもcドライブのmysqlフォルダ無いのdataフォルダ内にinsert.sqlは確実にある。

    .sqlファイルを読み込ませたいだけなんやー。なんがダメなんやー。
    文字コードはutf8にして改行コードもLFで統一してるー。
    後何を試せばよいですか皆さん助けてー。とりあえず風呂いって眠気冷まし的亜MS宇。
    952 : NAME IS - 2011/10/13(木) 03:57:02.67 ID:??? (+40,-30,-79)
    >>951
    >bash: c:mysqldatainsert.sql

    ディレクトリ構成からするとWindowsで使ってるように見えるんだけど、DOSプロンプトじゃなくてbashということはCygwinかMSYSあたりで使ってる?

    だとしたら、Cygwinなら

    /cygdrive/c/mysql/data/insert.sql

    のような形にすればいけるかも。
    953 : NAME IS - 2011/10/13(木) 04:18:51.89 ID:??? (+17,-30,-50)
    >>952
    基本情報ごっそり抜けて済みません。
    自分はwinXPprofetnolで操作してまして、アップロード希望先のサーバは
    DTIで借りてるserversman@vpsです。操作はteraterm様で行っています。
    teratermの代わりにCygwinを使うの早速やってみます。ありがとうございます。
    Cygwinて昔、何かで触って以来です。自信んっしん。
    954 : 952 - 2011/10/13(木) 04:45:20.33 ID:??? (+4,-30,-111)
    >>953

    つまり
    ・SQLファイル = 自PCのデスクトップ
    ・DB = VPS
    ・VPSへの接続 = Teraterm
    ですよね。

    それだとCygwin使っても状況は変わらない。

    mysql> SOURCE c:¥mysql¥data¥insert.sql
    はTeraterm上の(つまりVPS上の)ファイルを見に行くわけだから当然該当ファイルは無いわけだし、

    # mysql -u ユーザー名 -p -h ホスト名 DB名 < c:¥mysql¥data¥insert.sql
    も先頭が#なところからしてTeraterm上(=VPS)で行ってるだろうから、これもだめ。
    955 : NAME IS - 2011/10/13(木) 04:49:17.19 ID:??? (+62,+29,-69)
    ものすごい基礎の基礎を見逃していてお恥ずかしいというか
    先ずsqlファイルをどうにかしてvpsサーバへ送り込まないとならんわけですね
    そう。それがffftpで何故か送れなくて(重すぎる?)アレなのでした。
    ちょっと寝て起きたら移送方法をちゃんと調べます。展開は間違ってない富田。
    どうもありがとう。
    956 : 952 - 2011/10/13(木) 04:51:47.57 ID:??? (+5,-30,-167)
    >>953
    というわけで、恐らく一番簡単な正解は
    「SQLファイルをVPSにアップロード」ではないかと。

    VPSに
    /home/{953のユーザ名}/insert.sql
    の形でアップロードして、

    # mysql -u ユーザー名 -p -h ホスト名 DB名 < /home/{953のユーザ名}/insert.sql

    でいけると思う。
    要は、サーバ側で作業するならサーバ側にSQLファイル置こうねって事です。

    WindowsにMySQLクライアントインストールしてるなら、「DOSプロンプト上から(つまり自端末から)」
    mysql -u ユーザー名 -p -h ホスト名 DB名 < c:¥mysql¥data¥insert.sql
    すれば行けると思うけど、自分はやったことない。

    957 : 952 - 2011/10/13(木) 05:00:25.41 ID:??? (+62,+29,-50)
    あーそうですね、955 の理解であってると思いますw

    serversmanかFFFTPに固有の事情があるのかもしれないけど、自分はさくらVPSでマカーなのでその辺はよくわからないや。
    軽いファイルや空ファイルでチェックするのが早そうだけど、この辺はMySQLの話題ではなくなるのでこの辺で。


    958 : NAME IS - 2011/10/13(木) 16:43:18.88 ID:??? (-1,-29,-17)
    serversmanは自分で設定しないかぎりftpd動いてないだろ
    scpしろ
    959 : NAME IS - 2011/10/13(木) 19:46:17.43 ID:??? (+128,+29,-9)
    Datetime型のフィールドについて、現在より30分前のものという条件でセレクトしたいときはなにを使うべきでしょうか?
    960 : NAME IS - 2011/10/13(木) 22:20:14.73 ID:??? (+93,+27,-5)
    > なにを使うべきでしょうか?

    どういう意味?
    961 : NAME IS - 2011/10/13(木) 23:29:49.52 ID:??? (+72,+29,-4)
    >>959
    WHEREを使って30分前を指定してあげればいい。

    >>960
    こうやって回答してあげるのが楽しいんだ。
    962 : 0 - 2011/10/14(金) 00:38:48.89 ID:??? (+36,+9,+2)
    >>950
    ありがとうございます!
    963 : NAME IS - 2011/10/14(金) 00:58:18.63 ID:??? (+52,+29,-1)
    お安い御用です。
    964 : NAME IS - 2011/10/14(金) 11:42:27.21 ID:??? (+9,-8,-3)
    次スレの季節
    965 : NAME IS - 2011/10/14(金) 17:59:16.90 ID:??? (+10,-29,-5)
    >>959
    ヒント:time_add(), between, now()
    966 : NAME IS - 2011/10/14(金) 20:21:57.26 ID:??? (+74,+29,-2)
    >>959
    30分前ってことは、現在時からジャスト30分0秒前、ってことだよね。
    967 : NAME IS - 2011/10/14(金) 21:06:34.14 ID:bpCxU2Us (-15,-29,-117)
    商品Aが複数カテゴリ(別テーブルにて定義、それをJOIN)に入ってる場合に
    こんな感じで帰ってくるんだけどこれでいいの?初めての設計でよくわからない。

    itemId ... categoryId
    A ... 4
    A ... 5
    A ... 6

    見た目上は商品名とかの ... が何度も繰り返しされてるようで気持ち悪い。
    内部的に何らかの最適化が行われてるといいんだけど、他にいい方法があるのかな?

    それと、PHPで利用する場合にこのレコードを順に走査していって、前回と同じIDなら
    そのIDに対してカテゴリを追加って具合で大丈夫?
    968 : NAME IS - 2011/10/14(金) 22:42:02.24 ID:??? (+35,+13,+0)
    >>967
    DB設計としては合ってる
    969 : NAME IS - 2011/10/15(土) 00:07:10.62 ID:??? (+56,+28,-5)
    あってない。
    DB設計を勉強しましょう
    970 : NAME IS - 2011/10/15(土) 00:09:19.70 ID:??? (+49,+26,-6)
    PHPで順に操作とかアホのやること
    971 : NAME IS - 2011/10/15(土) 00:15:02.00 ID:??? (+52,+29,-6)
    PHPで順に捜査とか天才のやること
    972 : NAME IS - 2011/10/15(土) 00:19:06.26 ID:??? (+57,+29,-6)
    多対多ならこの構成でいいんじゃないの?
    973 : NAME IS - 2011/10/15(土) 00:49:52.46 ID:??? (+51,+28,+0)
    DB設計でならあってる
    974 : NAME IS - 2011/10/15(土) 01:57:06.43 ID:??? (+57,+29,-3)
    見た感じ多対多じゃなくて1対多じゃね?
    975 : NAME IS - 2011/10/15(土) 02:53:00.03 ID:??? (+52,+29,-3)
    用途がまったく想像できますん
    976 : NAME IS - 2011/10/15(土) 04:08:26.76 ID:??? (+52,+29,+0)
    あんたに想像してもらいたくない
    977 : NAME IS - 2011/10/15(土) 08:51:15.28 ID:??? (+55,+29,-7)
    >>967
    とあるものが複数カテゴリに属してるなら、そうなって当たり前だろ。
    978 : NAME IS - 2011/10/15(土) 11:29:45.03 ID:??? (+89,+29,-15)
    当たり前かどうかは当人の価値観に依存する
    979 : NAME IS - 2011/10/15(土) 12:44:19.61 ID:??? (+106,+24,-2)
    じゃあ定石で
    980 : NAME IS - 2011/10/15(土) 13:23:04.59 ID:??? (+64,+29,-13)
    >>978
    エゴだよそれは!
    981 : NAME IS - 2011/10/15(土) 13:23:57.55 ID:??? (+62,+29,-1)
    >>979
    囲碁だよそれは!
    982 : NAME IS - 2011/10/15(土) 17:13:01.24 ID:??? (+70,+28,+0)
    >>979
    うちの上司、定石って名前
    983 : NAME IS - 2011/10/15(土) 17:36:40.88 ID:??? (+72,+26,-1)
    うちのは力石
    984 : NAME IS - 2011/10/16(日) 00:51:29.64 ID:??? (+60,+29,-43)
    SNSサイトを作っているのですが、DBに投稿した日記(Text)の冒頭部分のみを取り出すにはどうすればいいでしょうか
    レコード登録時に冒頭部分のみのカラムを作るのも効率が悪い気がしてきて・・
    985 : NAME IS - 2011/10/16(日) 01:08:39.27 ID:??? (+9,-28,-12)
    >>984
    LEFTとか使えば
    986 : NAME IS - 2011/10/16(日) 04:33:08.68 ID:??? (+5,-23,-35)
    >>985
    LEFT関数中々便利ですね
    Textを全文取り込んで文字列操作するよりもメモリが節約できそうです
    ありがとうございます
    987 : NAME IS - 2011/10/16(日) 10:23:50.69 ID:??? (+52,+29,-1)
    お安い御用です。
    988 : NAME IS - 2011/10/16(日) 16:00:22.56 ID:??? (+54,+21,+0)
    >>983
    エコだよそれは!
    989 : NAME IS - 2011/10/17(月) 11:47:51.56 ID:??? (+19,-30,-99)
    id         int
    category_id   int
    post_date     datetime
    comment     varchar(255)
    count       int           5.1 MyISAM

    100万件以上あるテーブルで、
    数種類あるカテゴリ別に月単位でcountの多い順に20件集計したいのですが、
    どこにインデックスをつけたらいいですか?

    試してみたところcategory_idとcountの複合インデックスが一番早かったのですが、
    もっと早くなるいい付け方はないでしょうか
    990 : NAME IS - 2011/10/17(月) 12:31:52.03 ID:??? (+27,+9,+0)
    サマリ作る
    991 : NAME IS - 2011/10/17(月) 13:55:34.01 ID:??? (+4,-30,-134)
    >>989
    yyyymmってカラムを追加して
    (category_id, yyyymm, count)というインデックスを作り、

    SELECT ... FROM ttt
    WHERE category_id = aaa AND yyyymm = bbb
    ORDER BY count DESC LIMIT 20;

    をcategory_id分繰り返すのが速い。
    けど先月分まで確定してるならあらかじめサマリ作っておけばいい
    992 : 989 - 2011/10/17(月) 16:35:11.66 ID:??? (+45,+17,+1)
    ありがとうございます。試してみます。
    993 : NAME IS - 2011/10/17(月) 19:37:54.55 ID:??? (+52,+29,-1)
    お安い御用です。
    994 : NAME IS - 2011/10/17(月) 21:53:50.84 ID:??? (+19,+1,-2)
    次スレまだ?
    995 : NAME IS - 2011/10/17(月) 22:34:26.88 ID:??? (+37,+14,+0)
    このスレで終了します。
    ←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / mysql スレッド一覧へ
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

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


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