MySQLを使う5つの理由、使わない8つの理由 92
ストーリー by mhatta
Firebird... 部門より
Firebird... 部門より
pinbou 曰く、
本家/.の記事より。CIO.comで、オープンソースRDBMSとして人気のMySQLの長所と短所を2人の専門家に別々に指摘させるという記事が話題になっている。Tina GaspersonはMySQLを使う5つの利点として、すでに普及していること、シンプルであること、TCOが低いこと、よくサポートされていること、柔軟性やスケーラビリティに富むこと、最新テクノロジーのネイティヴサポートを持つことを挙げ(5つと言いつつなぜか6つある)、一方Brent ToderashはMySQLを使うべきでない8つの理由として、ライセンスがGPLであること、それが嫌なら商用のプロプライエタリライセンスを買わなければならないこと、既存データベース環境との統合性の問題、製品としての未成熟、機能的な不十分さ、認証制度の不備、企業内での知名度の問題、スケーラビリティの問題を挙げ、代替案としてPostgreSQLを推奨している。どちらが正しいかは読者の判断に任せたい。
5つと言いつつなぜか6つある (スコア:3, おもしろおかしい)
Re:5つと言いつつなぜか6つある (スコア:0)
#今なった。
#吹き替え版ってもう見られないのん?
sqlこねくり回しているときにはmysqlよりpostgresの方が好きなのだけどなんだかんだでLAMPのMって言うか知名度はMysqlの方が高いんだよね。
Re:5つと言いつつなぜか6つある (スコア:0, オフトピック)
#「『理由がN個ある』と言いながらN+1個の理由を挙げる」のは、モンティパイソンの
#『スペイン宗教裁判ネタ』であって、史実の『スペイン宗教裁判』とは関係ありません。
ヒント (スコア:3, 興味深い)
開発がWeb主導でWebオンリーのサービス→MySQL
これだけは間違いない。適材適所。実際Webの大規模サービスはMySQLが多いわけで。
Re:ヒント (スコア:1)
MySQLの方が基本的にレスポンスが速いとかApacheと一緒のシステムとして使うのに手頃でWEBサイトのようなアクセスが多い場合には作る側や運用する側に好都合だというだけの話では無いかと思いますけど。
逆に言えば基幹系DBのような多機能さやロバストさは重要視しない代わりにこれらの長所があるから運用も含めたトータルコストが安上がり。と言う感じかと。
# なんかMySQLしか最近使っていないので最近のPostgreSQLはどうかわからないです(^^;が、
# Tomcat経由でWEBアプリ組まされたときの印象ではPostgreSQLの方がトランザクションが集中した場合は
# 「強い」気がします。
## MySQLも5になってからかなり強くはなったような感じがしますが、一台のマシンで何個もヴァーチャルドメイン任せる
## ようなサーバで動いているときに不安定気味な感じはまだまだあるような(^_^;
PostgreSQL事例 (スコア:1)
以前某SIerがOSS活用事例として紹介してくれたシステムは(2~3例だけですけど)、全部PostgreSQLを使ってました。どうしてMySQLじゃなくてPostgreSQLなのかは聞きそびれましたが ^_^;、PostgreSQL使ってうまくいったら、特に問題があったり客先からの指定でもなければ、MySQLに変える理由がありません。
どっちがいいかってより、どっちの方をよく知っているか、使った経験があるかの方が実際の選定には効いてくるんではないかと感じてます。
vyama 「バグ取れワンワン」
Re:ヒント (スコア:1, 参考になる)
robust: 強壮[健]な [goo.ne.jp] という意味から、コの業界では「堅牢性」といいますね [google.co.jp]。
Re:ヒント (スコア:1)
外向けの奴は、基幹とは別枠で作るかと・・・。
# 同時接続とか考えると、Web向けはやっぱり特化だよね
--- (´-`)。oO(平和な日常は私を鈍くする) ---
理由が 5の理由 (スコア:3, おもしろおかしい)
頭の中で配列化されてて
riyu[0]="すでに普及していること";
riyu[1]="シンプルであること";
riyu[2]="TCOが低いこと";
riyu[3]="よくサポートされていること";
riyu[4]="柔軟性やスケーラビリティに富むこと";
riyu[5]="最新テクノロジーのネイティヴサポートを持つこと";
→あぁ5個かって
#こんなミスを毎日のように自分はやってます
[注意]コメント主は大変叩かれ弱い性質です。優しく接してあげて下さい
~おもしろおかしい以外に興味はありません~
Re:理由が 5の理由 (スコア:1)
#自分のコメントにはあえてID
[注意]コメント主は大変叩かれ弱い性質です。優しく接してあげて下さい
~おもしろおかしい以外に興味はありません~
Re:理由が 5の理由 (スコア:1)
の
Re:理由が 5の理由 (スコア:1)
適材適所 (スコア:2, 参考になる)
MySQLはシンプルで速いのが利点であり、機能を沢山付けて遅くなってしまったら
MySQLの存在意義もなくなってしまうんだが
Re:適材適所 (スコア:1, すばらしい洞察)
シンプルな代わりに早いがスタートだったんだから「機能的な不十分さ」なんて言われても、「はいはいアンタには縁がありませんでしたね」で終わりじゃん。
Re:適材適所 (スコア:1)
機能同士の依存関係に悩まされたり後方互換がとれなくなったりいろいろあって
なかなかそうもいかないんだろうなあ
#MySQL4.1で疲れてPostgreSQLに移行。
個人的には・・・ (スコア:2, 興味深い)
十分に使う理由になると思う。
会社で頼まれて簡単なDBをPHP&MySQLで組んだけども
トランザクションも一応使えてるし応答速度も速いし
特に不満は無いものの、最近はポスグレも使ってみたいと思いながら
やっぱり時間が無くて勉強できない現状・・・
それほど規模が大きくならないのであれば十分実用に耐えるのではないかと・・・
PHPからの操作も楽ですし。
//何で中小運送会社の平社員がコーディングせにゃならんのか
//肩書きなんぞイラン。働きに対して対価をクレ。
--運送会社なんで運賃しかもらえません。
Re:個人的には・・・ (スコア:2, 興味深い)
あのう、GoogleもYahoo!も、国内だとhatenaも楽天もlivedoorもMySQL使っているのですが...
Googleはかなり手を入れているようですけどね。
Web方面の有名どころでMySQL以外を使っているのって、Amazonくらいじゃないかな。Oracleだったはず。
Re:個人的には・・・ (スコア:1)
勉強不足でした。
ご教授ありがとうございます。
Re:個人的には・・・ (スコア:2, 参考になる)
MySQL自体にまで手を入れているのはGoogleくらいなものですよ。その差分も公開 [blogspot.com]されていますし。
たいていの企業はパラメータチューニング & 運用で性能を稼いでいます。でもそれは他のRDBMSでも同じですよね?
Re:個人的には・・・ (スコア:0)
今の給与と比べて、わりにあわないなら話は別ですけどね。
Re:個人的には・・・ (スコア:0)
女と付き合うようになるとわかるよ
利点挙げてる方と欠点挙げてる方の両方にスケーラビリティが挙がってるんだけど (スコア:2)
用途によるって程度の事なら利点・欠点どっちにも挙がるべきじゃないし。
Re:利点挙げてる方と欠点挙げてる方の両方にスケーラビリティが挙がってるんだけど (スコア:5, 興味深い)
肯定的意見
It Is Flexible and Scalable
こちらでのスケーラビリティは、最初は小さく(組み込み向けの数MBのフットプリント)、その後に大きく(数TBまでも)スケールできると言うところを重視しているようです。こうした特長は特にベンチャーなどのスタートアップ企業にはありがたいでしょうね。
この後には、ストアドプロシージャを使うことでクライアント側のプロセスフットプリントを小さくし、CPU資源を節約できるという使い方が挙げられています。
否定的意見
Perception of Scalability
こちらでは Vertical vs. Horizontal 、scale up と scale out と言う言葉で説明していて、MySQL は主にスケーラビリティを scale out によって行っている(scale up はいまいち)と言う説明をしているみたいですね。Virtual と言うのは例えば資源を単一サーバで増強(例えば64CPU化)することでスケールさせる方法なので、確かにこれはMySQLでは得意と言えなさそう。
実際問題として MySQL の scale out では、DB を分割したりプログラム側の作りを工夫したりというアクションが必要なことが多い気がします。
と言うことで正直「用途による」としか言えない気がしますが、上記リンクを読む感じ Oracle などでは「どっちにもスケール出来るよ」と言うのが売りにはなると思います。PostgreSQL ではどうなんでしょう。
Re:利点挙げてる方と欠点挙げてる方の両方にスケーラビリティが挙がってるんだけど (スコア:0)
Re:利点挙げてる方と欠点挙げてる方の両方にスケーラビリティが挙がってるんだけど (スコア:2, 興味深い)
Re:利点挙げてる方と欠点挙げてる方の両方にスケーラビリティが挙がってるんだけど (スコア:2, 参考になる)
実はみんな使ってるMySQL (スコア:2, 参考になる)
調べるとAdobe Creative Suite(PhotoShop、DreamWeaver等のセット商品。Word/Excelに対するOfficeみたいなもの)に含まれるAdobe Version Cue [adobe.com](subversionやwebdavのようなもの?)がバックエンドで使ってるようだ。
あとAcrobatでもMySQLが使われてる [binword.com]らしい
日本ではMySQLよりPostgreSQLが普及してると聞くが、これを考えると圧倒的に逆転されてるんじゃなかろうか。
まあバックエンドDBを考えると、VBの皮をかぶったMDBやDelphi/C++Builderの皮をかぶったParadoxが今だ圧倒的かもしれんが。
実はもっと使われてたPostgreSQL (スコア:1)
PlayStation BB(PS2用NIC+HDD)では起動メニューがBIOS ROMのものではなくHDD上のもの(BB Navigator)に差し換わるが、
コレがLinux上で動いてて、ソフトのバージョン管理か何かしらんがPostgreSQLが入ってた。(Linuxは単なるブートローダかもしれんし、BB Navigatorはネットワークアップデートするので今は違うかもしれん。)
BB Unitの出荷台数は知らん(海外ではNIC+HDDではなくNIC単体で売られてたようだし)が、もしかしたらPostgreSQLが最多ユーザかもしれん。
が現在BB Unitは放置ぽいので使われてたと過去形にすべきか。
ライセンスその他を考えると当時PostgreSQLを選択したのは適切かと思う。
今ならならこういった「ちょっとした構造つきストレージ」が欲しい時にはMozillaカレンダー(Sunbird/Lightning [mozilla-japan.org])やSolaris 10のようにsqliteを使うんじゃなかろうか。
Re:実はみんな使ってるMySQL (スコア:1)
知らずに使ってる(アプリを使ってるつもりでアプリ内部で使ってる)ユーザも含めれば圧倒的に逆転されてるんじゃなかろうか、
という話ですが。
Adobe Creative Suiteユーザは(Adobeユーザの中では)そう多くはないでしょうが、それにしたってDBを明示的に使うユーザ(プログラマとか管理者とか)に比べれば圧倒的に多いのでは
名前が格好悪い (スコア:1, おもしろおかしい)
#そんなんでいいのか的AC
名前が難しい (スコア:3, おもしろおかしい)
# 模範解答 [postgresql.jp]
Re:名前が難しい (スコア:1, おもしろおかしい)
# と不安を煽ってみる
Re:名前が難しい (スコア:1)
3・4回上司に説明していてイヤになってMySQL。
やっぱ、名前って大切だよね。
名前で選ぶなら (スコア:2, おもしろおかしい)
いいんじゃない (スコア:0)
ライセンスの項 (スコア:1)
>それが嫌なら商用のプロプライエタリライセンスを買わなければならないこと
これって理由2つ分に相当するんですかね。
MySQLを選ばない理由を増やすトリックに見える。
Re:ライセンスの項 (スコア:1)
>>それが嫌なら商用のプロプライエタリライセンスを買わなければならないこと
>これって理由2つ分に相当するんですかね。
MySQLはフリーだから、といって商品のDBとして使っていた例を二つ知っています。
一つは商品デモで持ってこられて、デモ後にDB名聞いてご説明申し上げたら、
「そんなことないでしょ」と言いながら後ずさりで帰って行かれました。
Re:ライセンスの項 (スコア:1, 参考になる)
私の社内でも同じ主張をする人が居て、説得に苦慮した記憶があります。
インテグレータとして顧客へ(納品|販売|再販)する場面で、
ライセンス主張をコロコロ替えるベンダに対応するリスクをどのように担保するか?
という話題でしたが、
・HW単位課金モデル、ソケット単位課金モデル、コア単位課金モデル、があります
xen、VMware、VirtualPCなどを共存させられない条件もありえます
・某DBは、UNIXライセンスに対し、Windowsライセンスが半額です
そも、価格設定はベンダの自由です
・リバースエンジニアリングを禁止できます
日本語パッチなどの独自開発は問題になる可能性があります
・ベンチマークの公開を禁止できます
・自宅、学校、研究用途で利用するコピーを複数作成できます
・デスクトップとノートPCに、各1CPUずつインストールできます
...などなど。冷静に考えると、ユーザの利用は必ずしも自由ではなく、
不条理なライセンス条項は他にも普通に存在します。
混乱の元ですが、実際、少し前までのMySQLは、
「アプリのバックエンド利用なら無料」
という設定があったと思いますし、
具体的には、MySQLをサブスクリプションライセンスで長期利用する場合、
運用期間が長くなればなるほど、他製品パッケージライセンス購入の方が安くなり、
価格性能比のトレードオフが微妙な結果になる場面は多々ありますが、
殆どの場合、ライセンス条項に従うか否かはユーザに委ねられます。
「オープンソース=無料」という固定観念を棄てるべきで、
MySQLは明確にデュアルライセンスであり、決して無料DBのではない。
というコトでしかありません。
# MySQLの場合、GPL適用か否かはユーザが判断する必要があるので
# その辺も販売会社側のスタンスに問題があると感じますけど
# その点を含め、無料でコンサルする義理も無いわけで
そんなことより (スコア:1, 興味深い)
やれ default-character-set を binary で使え、とか
skip-character-set-client-handshake でとりあえず大丈夫、とか
その他色々ありましたけど、現段階においても上に挙げたような、
なんとなく動かす系のやり方しか無いのでは?
結局の所、何処かの Web アプリよろしく 4.0.27 辺りを使い続けるか、
PostgreSQL 辺りに乗り換えるかしかないのが現状で、使う利点や、使うべきでない理由なんてものは、
それらが解決した後に初めて生きてくる話ですね
そもそも、現段階では日本語の正規表現/全文検索も出来ない訳ですし
立ち位置からしてもそれほど違う MySQL を、本家/. と一緒のつもりで議論してもしょうがないでしょう
# ええ、私もやりましたよ、4.0 → 4.1over の為の ujis → utf8 変換、半泣きになりながらね
# 変換で化けたデータをシコシコ手直しもしました
# その後は、サーバー/クライアント間の文字コードの同期ですよ
# SHOW VARIABLES LIKE 'char%'; の出力を眺めながら気が狂いそうでした
# なんでバージョンが 0.1 上がった程度でここまでハマりますかね
# まあ社内で MySQL を使おう、と言い出したのは私ですしね、責任は取らされ^H^H^Hりました
Re:そんなことより (スコア:4, 参考になる)
これは逆です。
4.0までがマトモではなかったのです。 4.1から文字列を文字列として扱うようになりました。
ハマっている人たちは、4.0までの適当さに頼った使い方をしていて、そのツケがまわってきただけです。
できます。
大量のテキストに対して現実的な速度を求めるなら、Rast, Senna, HyperEstraierあたりを使いましょう。
Re:そんなことより (スコア:3, 参考になる)
Re:というか (スコア:1)
されていますよ。いつの時代の話ですか?
『今までコンパイル通ってたのに、コンパイラのバージョンあげたら通らなくなった! どうしてくれる!』ってくらい的外れ。
ポスグレは (スコア:1)
ヤツには何回もデータを吹き飛ばされました。orz
ついこのあいだも別部署でPSQL8で吹き飛びそうになり、
コネクションプールのおかげで、皮一枚で助かったラシイ。
オソロシッス。オソロシッス。
Re:ポスグレは (スコア:1)
吹き飛びそうになったのがコネクションプールで助かる、
という状況がどうにも想像つきません。
できれば詳細を教えてほしいです。
Re:ポスグレは (スコア:1)
すでに接続済みのコネクションでは生きていた。
ということらしい。
動かないからとかいって、再起動してたら、、、キャー。
Re:ポスグレは (スコア:1)
金がないってんなら、せめて常に最新版に更新し続けるくらいじゃないと。騙し騙し使ってたけど、8.1系は今となっては論外です。
Re:ポスグレは (スコア:1)
MySQLの商用サポートってどれくらいやってくれるんですかね? fixすぐ出してくれるなら考えるんですが。
普及してないのが日本ではネックなのだろう (スコア:0)
だから私はBSDライセンスを選びました (スコア:1)
一番のやっかいなのは、どこまでがGPLで利用できて、どこに手を入れると or どこで使用するとライセンスを買わなければいけないのか、明確な答えがどこからも得られないことです。日本の代理店に相談しても「心配ならライセンス買ってください」としか返答しませんしね。どこがすっきりしてるんだか。
こういう [srad.jp]原理主義者すらいる現状では、そもそも危なくてGPLでは使えないのかもですが。
Re:だから私はBSDライセンスを選びました (スコア:1, 参考になる)
それは狭義の初期のBSDライセンスです。
所謂BSDライセンスを分けると次のようになります。
・BSDライセンス(初期のライセンス.宣伝条項有り)
・修正BSDライセンス(新しいBSDライセンス.宣伝条項無し)
・BSDスタイルのライセンス(BSDライセンスを基にしたライセンス.XとかApacheとかPHPとか色々)
勿論事に当たっては良く確認しなければなりませんが。