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

    私的良スレ書庫

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

    元スレ【この先一体】MySQL 総合 Part15【どうなるの】

    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
    101 : NAME IS - 2009/04/29(水) 19:11:00 ID:??? (-24,-29,-102)
    MySQLのインデックスについて質問させてください。

    例として「name」「type」という2つのカラムにインデックスを張る場合、

    (name, type)
    のように2つセットでインデックスを張る場合と、

    (name)
    (type)

    と2つに分けてインデックスを張る場合と、パフォーマンスに差は出てくるのでしょうか。
    ちなみに検索は、「name」のみ、または「name」「type」2つセット、の2通りで検索します。

    もしパフォーマンスがかわらないのであれば、今後仕様が変わっても「type」のみでも検索ができるので、
    後者を選択したほうがよいと思っています。

    よろしくお願いします。
    102 : NAME IS - 2009/04/29(水) 20:23:50 ID:??? (+117,+30,-58)
    >>95
    はぁ?
    データベースが論理的に一貫性保っていることと、データファイルが一貫性持っていることは別だろが。
    そこになんらかの調停役をするものが必要だろ。
    それについては、各DBによって仕様がまちまちだから、ZFS側だけで一貫性が保てるなんてことはあり得ない。
    103 : NAME IS - 2009/04/29(水) 20:37:50 ID:??? (+86,+29,-82)
    >>102
    一貫性じゃなくて整合性だったな。クラッシュリカバリ出来る
    ストレージエンジンなら>>95の通りだよ。例えば InnoDB を
    使っているなら ZFS の恩恵をフルに享受出来る。Maria や
    Falcon みたいな最近のストレージエンジンでも同じだと思う。
    105 : NAME IS - 2009/04/29(水) 21:11:44 ID:??? (-1,-29,-6)
    マルチカラムインデックスだと、(a,b,c)にインデックス作ったら
    bとcはインデックスにならないんだよね。
    106 : NAME IS - 2009/04/30(木) 17:00:32 ID:??? (+33,-30,-61)
    >>101
    それぞれのシーンで有効なインデックスは、
    「name」のみ・・・(name)または(name, type)
    「name」「type」2つセット・・・(name, type)
    「type」のみ・・・(type)

    全てに対応したいなら、
    (name, type)と(type)の2つのインデックスを付与。
    107 : NAME IS - 2009/04/30(木) 22:54:00 ID:??? (+53,-8,-20)
    Oracle検定があるんだからMySQL検定も作ってほしい
    108 : NAME IS - 2009/04/30(木) 23:23:58 ID:??? (+65,+29,-2)
    >>107
    ありますよ。ちなみに自分も今度受けて来る予定です。

    http://www-jp.mysql.com/certification/
    109 : NAME IS - 2009/05/01(金) 14:11:46 ID:??? (+29,+29,-5)
    >>106
    最近はインデックスマージで、同時に複数のインデックスを使用可能。
    111 : NAME IS - 2009/05/01(金) 15:57:15 ID:??? (+64,+29,-5)
    インデックスマージは複合インデックスよりは遅いよ
    112 : 110 - 2009/05/01(金) 16:10:08 ID:??? (+11,-29,-63)
    >>111

    おぉ、ありがとうございます。
    じゃあ
     「name」のみ・「type」のみ・「name」「type」2つセット
    のスピードアップには
     (type) (name) (name, type)
    の3つインデックス用意するのがいいんですね。

    名前にsageしてた Orz
    113 : NAME IS - 2009/05/01(金) 16:24:13 ID:??? (-1,-29,-6)
    (name, type)があれば
    (name)はいらないよ
    114 : NAME IS - 2009/05/02(土) 01:10:43 ID:??? (+4,-29,-22)
    質問させて下さい

    sqlファイルをsshを使ってphpmyadminへインポートしたいのですが、
    どのようにコマンドを書いてあげればいいでしょうか?
    アドバイスをお願いします
    115 : NAME IS - 2009/05/02(土) 05:36:23 ID:??? (+34,+16,+0)
    消えろ
    119 : NAME IS - 2009/05/03(日) 09:15:04 ID:??? (+3,-29,-49)
    Oracleと同じ仕組みはない
    MyISAMなら1テーブル1ファイル
    InnoDBなら全部まとめて1ファイルか、1テーブル1ファイル

    主キーは1個しかないから主キーなんだぞ
    これはOracleでも同じ
    120 : NAME IS - 2009/05/03(日) 11:12:44 ID:??? (+57,+29,-7)
    ファイルごとに別パーティションに置いたりすれば、
    テーブル領域はかなり自由。
    121 : NAME IS - 2009/05/03(日) 13:32:27 ID:??? (-1,-29,-16)
    I/Oの最適化まで考えると、「全部まとめて1ファイル」「1テーブル1ファイル」のどっちも難しくなるな。
    もっとも、ストレージまで含めると、表領域概念があっても複雑になるけど。
    122 : NAME IS - 2009/05/03(日) 18:41:52 ID:??? (+3,-30,-49)
    >>114
    460 名前:名無しさん@お腹いっぱい。[sage] 投稿日:2009/04/30(木) 00:27:39
    mysql [ENT]
    で、mysqlのコンソールが実行できることをまず確認
    できないならmysqlが入ってない

    できるのにそのエラーが出るなら、<以降のファイルの指定
    123 : NAME IS - 2009/05/03(日) 18:47:24 ID:IRQUoHF0 (+23,+28,-18)
    もうMySQLは終りだから別のDB勉強したほうがいいよ
    124 : NAME IS - 2009/05/04(月) 05:40:01 ID:??? (+13,-30,+0)
    max_allowed_packetについて質問です。

    今、ローカルの環境で、画像等のバイナリを格納するDBを組もうとしているのですが、
    一定以上のサイズ(1MB以上)のデータをINSERTする時に、例によって
    Got a packet bigger than 'max_allowed_packet' bytes
    のエラーが出力されて、格納出来ません。

    そこで、max_allowed_packetの値を大きくするのですが、ちょっとよく分からない現象に遭遇してます。

    まず接続して、show variables like 'max_a%'で読むとデフォルトの1MB、
    set (session) max_allowed_packet = 4194304 で4MBにセットして、show variables
    でちゃんと4MBになっているのを確認し、バイナリのINSERTをかけても、
    やはり’Got a packet・・’のエラーが出て、格納できず。(これは、php perlのスクリプト中からやってます。)

    次に、接続中に set global max_allow・・・で同様に4MBにセット、show variables では1MBのまま(これは仕様どおり)、
    一旦接続断してから再接続で、INSERTをかけるとINSERT成功。その後はGLOBAL設定が効いているので問題なく成功。
    125 : つづきです - 2009/05/04(月) 05:41:14 ID:??? (+3,-30,-252)
    その次は、GLOBALが4MBの状態時に、スクリプト中で set session max_allow・・・=1048576(1MB) にセット、
    show variablesで1MBを確認後、1MB以上の画像をINSERT実行で、成功してしまいます。

    公式のマニュアルには、'globalは次回接続以後、sessionはその時点から、同じ変数に別の値をセットするか接続断まで'
    と書いてありますが、globalのほうはその通りなんですが、sessionでmax_allowed_packetを変更しても、
    その時点で効いてないようです。

    今はローカル環境で試していますので、my.cnf(my.ini)での設定や、rootでグローバル権限を持っているので
    なんとかなるのですが、じつはこれを外部のレンサバで動かすことを考えているので、
    my.cnfやグローバル権限がない状態で、この変更は不可能なのでしょうか?

    ちなみに試した環境は、
    WinXpsp3 + 5.0.78 5.0.79
    Linux/CentOS + 5.0.79 5.0.80
    ファイルサイズ約1.5MBの画像ファイルで、いずれも同様の結果となります。
    127 : NAME IS - 2009/05/04(月) 08:27:28 ID:7kTTuHSt (+26,+30,-94)
    なんで企業はOracleを好むの?
    高いのに。社長さんは自分でできないからサポートがあるOracleにしてるのかな?
    ってゆうかそれバカじゃん。無知。IT無知。
    データベースの操作くらい今時チンパンジーでもできるよね。
    チンパンジー以下だね。間違いなく包茎。
    Oracle利用者は包茎。
    短小包茎。

    そんなバカ共と、何でも自分で解決する努力家のMYSQLユーザーが同じに扱われたくないよ。
    128 : NAME IS - 2009/05/04(月) 10:33:09 ID:??? (+19,-29,-43)
    いちど72CPU144コアのUNIXサーバでMySQL動かしてみたらいいよ
    このへんでまともに動くのはOracleとDB2だけ
    129 : NAME IS - 2009/05/04(月) 11:29:01 ID:L8iXHRu1 (+60,+29,-40)
    適材適所でいいんじゃね?
    他を否定する奴って、実務経験ない奴なんだろうなぁ・・・
    といつも思う
    >>128
    自分には縁がなさげな規模だw
    130 : NAME IS - 2009/05/04(月) 13:51:26 ID:??? (+0,-29,-30)
    >>128
    PostgreSQLは試した?
    8.1 8.2 でかなりマルチCPUへの対応を強化してるはずだけど。
    12CPU以上でも性能伸びるってさ。
    131 : NAME IS - 2009/05/04(月) 18:11:28 ID:??? (+49,+18,-37)
    >そんなバカ共と、何でも自分で解決する努力家のMYSQLユーザーが同じに扱われたくないよ。

    ぶっちゃけ、SybaseとかDB2とかHiRDBの方がMySQLより情報が少なくて
    エンジニアがスゲー努力していると思うけど。
    132 : 124ですが - 2009/05/05(火) 01:05:32 ID:??? (+13,-30,-277)
    さらにその後色々調べて見ましたが、どうやらmax_allowed_packetを
    sessionレベルで変更することは無理なようだと結論付けることにしました。
    このあたりを参考にしました。
    http://bugs.mysql.com/bug.php?id=22891
    http://bugs.mysql.com/bug.php?id=14180

    ちなみに、http://d.hatena.ne.jp/mir/20060201
    ここによると、大きなサイズのクエリでも、max_allowed_packet以下のサイズに分割し、
    何度も送信を繰り返すような実装があれば可能なようですが、
    ここにある C/J や C APIを直接叩くような自前のコード以外には、
    今のところphpのmysqli(拡張版のほう)関数以外には見つけられませんでした。

    >>126での通り、その鯖ではmysqli関数が利用できませんし、
    perl-DBIのほうにはそれらしいことが出来ない(?)ようなので、
    現状、システムのmy.cnfの編集や、root等グローバル(スーパー)権限を持たない
    ユーザーしか使えない環境では、サイズ制限を1MBまでにすることにします。

    なにか他の方策や、「こうやれば出来る」みたいなことをご存知の方がおられましたら、
    是非ともお教え頂きたいと思います。
    133 : NAME IS - 2009/05/05(火) 01:27:34 ID:??? (+91,+24,-10)
    一括で入れられないなら、テーブル構成変えて分割で入れたら?
    134 : NAME IS - 2009/05/05(火) 01:42:40 ID:VyNefM6q (+65,+25,-39)
    DBの話じゃなくてシステムとして考えた場合、
    画像データをDBにつっこむ意味ってあるの?

    画像データはファイルのまま適当なディレクトリにつっこんで、
    ファイル名と保管ディレクトリだけDBにINSERTしておくのが合理的な気がするが。
    135 : 132 - 2009/05/05(火) 03:35:33 ID:??? (+75,+30,+0)
    ご意見ありがとうございます。

    実は、あまり言いたくはなかったのですが、ある知人からの紹介で依頼を受けることになってしまって、
    (正規のWeb作成業者等より)格安で請けることになったものでした。
    私自身は、3,4年前からテキストベースの検索エンジン的なサイト等をいくつか運営しているのですが、
    実はバイナリ(BLOB)型のデータを扱うのは今回が初めてでした。

    その依頼者さんの希望として、
    ・アップローダ的な機能がほしい
    ・そのバイナリをDBに格納したい
    ・その閲覧やダウンの可否を制御したい
    ・Web領域にはバイナリを直接置きたくない
    ・依頼者さんが借りているレン鯖上で(しかもいくつかの複数の業者で同様に)動作するようにしたい
    のような要望がありまして、とりあえずそのように作成しているところです。

    特に閲覧制御については、会員登録やパスワードの設定等もDBの別カラムに格納し、
    それをもって制御したいとのことです。あと領域に関しては、Web領域とDB領域が別になってるようなので、
    Web領域を食わなくてもいいというような見地もあるようです。

    私自身は、もし自前で運営するなら、>>134さんのおっしゃるようなシステム構成にすると思います。
    前にそのようなことを提案したんですが、どうもDB内に格納することにこだわっているようです。
    あと、恐らくはその依頼者さんが、管理の面で、連番になったidとファイル名などの照合などが面倒なのと、
    削除する時(Web領域にはFTPで接続するようですが)間違って消したり、上書きされたりすることを
    懸念されているのでは、と邪推しております。

    >>133
    !、確かにその手はありかもしれません。(視界が狭くなってました)
    その依頼者さんが、どうしてももっと大きいサイズがほしいと希望するなら、
    その方法でやってみます。どうもありがとうございます。
    136 : NAME IS - 2009/05/05(火) 07:13:32 ID:??? (+32,-29,-57)
    BLOB型をマジで使ったことないけど、たとえばセッションが10000個くらいあって
    ダウンするファイルが10MBだった場合、100GBくらいメモリ消費するイメージがあるんだけど。
    137 : NAME IS - 2009/05/05(火) 12:17:38 ID:VyNefM6q (+27,+29,-64)
    DBに画像つっこむのは絶対アホだと思うが、
    無理にやるならmy.cnfの設定変えればいいんじゃね?
    SETでちまちまやるより。
    まさかmy.cnfも変更できないなんて話はないよな
    138 : NAME IS - 2009/05/05(火) 23:49:19 ID:??? (+62,+29,-41)
    >>136
    現実的に考えて、135が作るようなコンテンツでセッションが
    一万いくなんてありえると思ってるの?
    100すらありえないだろう。
    139 : NAME IS - 2009/05/06(水) 15:41:53 ID:??? (+65,+29,+0)
    >>129-131
    凄く勉強になりました
    140 : NAME IS - 2009/05/06(水) 17:04:58 ID:??? (+57,+29,-20)
    買収で盛り上がってきたのに再び過疎になったね
    141 : NAME IS - 2009/05/06(水) 17:19:25 ID:??? (+61,+29,-15)
    何でデータベースは検索が速いのかが疑問なんですが
    仕組みについてやさしく書かれているサイトは無いでしょうか?
    142 : NAME IS - 2009/05/06(水) 17:28:14 ID:??? (+6,-29,-28)
    >>141

    まずはB-treeについて勉強したらいいよ。
    143 : NAME IS - 2009/05/06(水) 17:37:32 ID:dE2L58df (+24,+29,-37)
    ちょっと古いけど「RDBMS解剖学」を立ち読みしてみる とか
    145 : NAME IS - 2009/05/07(木) 16:40:58 ID:??? (-1,-29,-16)
    検索だけならMyISAMは早い。
    GoogleがMyISAMの改造版を使ってるという記事を読んだことがあるな。
    146 : NAME IS - 2009/05/07(木) 16:44:48 ID:Olr/5NnF (+24,+29,-32)
    ところでさMySQLはオプソなんだから、
    クローンプロジェクトで管理していってもかまわんのじゃない?
    それともフリーなだけでオープンじゃなかったわけ。
    147 : NAME IS - 2009/05/07(木) 17:05:29 ID:3pzQ/ytL (+54,+29,-219)
    forkはできるが、信頼できる組織か個人がやらないとダメだろう。
    そこらの無名の人間がforkしても誰も使わないだろ。

    MySQL創始者のmontyは会社はじめてるし、彼がやるならOKと思うが、innodbがOracleの物だからMyISAMしかダメなのはつらいかもな。もちろんforkしたらinnodbが使えないかどうかは知らんが
    ユーザーからすればあまりに危険なんでforkしたやつではinnodb使う奴はそうそういないだろう。

    Falconはどうもダメっぽい。っていうかinnodbのかわりになるほど完成度があがるとは思えん。

    ま、なんだ
    もともとinnodbがOracleに握られた段階でMySQLはキンタマつかまれてたわけで、その前のOracleによるMySQL買収交渉の時点でOracleの対MySQL戦略は決まってたはずだ。
    つまりMySQLに先はない。forkに期待するのもいいが、別のDB使う検討をはじめるのが普通のエンジニアのリスク管理だと思うがな。
    148 : NAME IS - 2009/05/07(木) 21:09:46 ID:??? (+29,-8,-2)
    >>147
    InnoDB も GPL だから、使いつづけることはできる。
    149 : NAME IS - 2009/05/07(木) 23:48:45 ID:3pzQ/ytL (+36,+0,-24)
    >>148
    それは知ってるが、forkしてOracleと対立しながらinnodb使い続けるのってリスキーだろ、て話し

    150 : NAME IS - 2009/05/07(木) 23:57:52 ID:??? (+3,-30,-139)
    以前まで動いていた、MySQLが動かなくなってしまったのですが、どうにも
    解決しないので、どうかお力を貸してください。

    OS:CentOS5
    MySQL5

    MySQLを開始しようとするとエラーがでてしまいます。

    エラー内容:
    mysqld failed. The error was:MySQL データベースを初期化中:
    Neither host '自宅サーバーのホスト名' nor 'localhost' could be looked up with
    /usr/bin/resolveip
    Please configure the 'hostname' command to return a correct hostname.
    if you want to solve this at a later stage , restart this script with the --force option
    [失敗]

    どうか御教示ください。お願いします。
    ←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / mysql スレッド一覧へ
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

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


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