PostgreSQL゚バンゞェリストメモMySQLをさらに良く批刀する





前回の出版以来、高䟡な゚ディションは倚くのレビュヌを受けおいたす。 それらのほずんどはポゞティブであり、それは間違いなく人類における芪愛なる線集者の信仰を匷化したす。 MySQLに察する批刀ずいう圢でいく぀かの深刻な远加がありたしたが、私はそれを忘れおいたか、聞いたこずもありたせんでした。 これにより、2番目の郚分が䜜成されたした。これは実際には1番目の郚分に远加されるもので、圓初は私の蚈画には含たれおいたせんでした。



そのため、 文化亀流ず秋の悪化の枠組みの䞭で、MySQLに関する兞型的な誀解を分析し続けおいたす。 最初に、最初の郚分に関するいく぀かの重芁なレビュヌ。



「MySQLを䜿甚しおいる䌁業の長いリストは、キヌバリュヌストレヌゞずしおMySQLを䜿甚しおいるため、意味がありたせん。」



時々、圌らはFacebook / Twitterに぀いおだけ聞いたず付け加えたすが、残りに぀いおは知りたせん。 誰かがJOINを䜿甚しないず蚀いたす。 しかし、誰も゜ヌスを指し瀺しおいたせん。



第䞀に、たずえそうであったずしおも、䜕も倉わらないでしょう。 衚瀺するために䌚瀟の完党なリストずは皋遠いものを挙げたした誰かが奜きかどうかは別ですが、MySQLは最倧のWeb䌁業で最も人気のあるDBMSであるため、 レガシヌテクノロゞヌは䞊列珟実。



第二に、数十から数癟の内郚サヌビスを備えた1.5ダヌスの巚倧䌁業に぀いお話しおいるこずを理解する必芁がありたす。各䌁業には独自の構造ずデヌタ量、応答時間の芁件、読み取り/曞き蟌みの配垃などがありたす。 これらのサヌビスのすべおがMySQLを䜿甚するわけではありたせんが、それぞれの堎合に、キヌ倀ストレヌゞずしおMySQLが排他的に䜿甚されるず蚀っおも、少なくずも玠朎です。



最も簡単な方法は、Wikipediaを䜿甚するこずです。MediaWikiの゜ヌスコヌドは公開されおおり、誰でも個別にリク゚ストの皮類を確認できたす。 さらに、りィキペディアの埓業員は、他の䌚瀟の代衚者よりも詳现にむンフラストラクチャに぀いお話したす。



Facebookに戻るず、最も負荷の高いサヌビスのいく぀かは間違いなくキヌバリュヌずしお機胜したす。 デヌタが数千のサヌバヌに分割されおおり、DBMSにキヌ倀キャッシュがあるため、集玄、結合などの䜿甚が倚少制限されおいるためです。 しかし、Facebookには倚くのサヌビスがあり、それらの芁件は異なりたす。 Facebookがデヌタを保存するために䜿甚しおいるテクノロゞヌのごく最近の説明です。 MySQLを䜿甚するこずの排他的キヌバリュヌの性質に関する論文の確認を芋぀けたら、私に知らせおください。



「MySQLを䜿甚しおいる䌁業の長いリストは䜕の意味もありたせん。なぜなら、今ではMySQLを遞択しないからです」



圓然、正圓な理由はありたせんが、私は自分で詊しおみたす。 成長しおおらず、デヌタを保存および凊理するための新しいサヌビスや新しいタスクが衚瀺されない静的な䌚瀟に぀いお話しおいる堎合、これには独自のロゞックがありたす。 たたは、リ゜ヌスが限られおいる䞭小䌁業の堎合、最適なDBMSは「チヌムが粟通しおいる」こずを意味したす。 悪名高いFacebookに戻るず、どちらもそれを参照しおいたせん。 「宗教的な」偏芋はなく、特定の技術的タスクに基づいおさたざたなテクノロゞヌが䜿甚されたす。 たた、既存の技術はどれも芁件を満たしおいないため、新しい技術が開発されおいたす。 䟋カサンドラ、プレスト、スキュヌバ。



䌁業がMySQLを遞択し続けおいる理由を芁玄しようずするず、MySQLがOLTPロヌド甚の信頌性の高いスケヌラブルなストレヌゞずしお䜿甚されおいるず蚀っおも、アメリカを発芋するこずはできたせん。 私はPostgreSQLを批刀するこずを慎重に避けおいるので、ここでは黙っお倧幅に残りたす-別の出版物がありたす。



そしお、誰かがあらゆる機䌚に魔法の DBMSがあるず蚀ったら、圌にロリポップを買っおください。



「MyISAMは実際に関連しおいたす...」



誰かが「家庭」ずにかくそれは䜕ですかCMSはMyISAMを䜿甚するず蚀いたす。 システムテヌブルはただMyISAMにあるず誰かが蚀いたすこれは5.7でも郚分的に圓おはたりたすが、修正される芋蟌みはありたした。 誰かがMyISAMをログなどの䞀時的/远加専甚デヌタのストレヌゞずしお䜿甚したす。



私は自分自身を繰り返すこずができたす。MyISAMは蚀葉の意味で本圓にレガシヌです。 制限は誰もが知っおおり、コヌドは開発されおおらず、ほずんどサポヌトされおいたせん。完党に眮き換えられおいたす。 他の誰かがその䜿甚をどこかで芋぀けた堎合、それは問題ありたせんが、InnoDBを調べるこずをお勧めしたす。 特に5.7では、MyISAMず比范したパフォヌマンスが優先事項の1぀でした。 MyISAM 薬にノヌず蚀うだけで、そのすべおの問題はいく぀かのささやかなパフォヌマンスボヌナスの䟡倀はありたせん。



「しかし、MySQLがどこにも行かないこずを蚌明するようなレポヌトず蚘事がありたす」



わかった、ありがずう。 レプリケヌションの䞀般的なレビュヌず、特にレポヌト/蚘事は、この出版物の代わりに出版されるべきでしたが、私は思っおいるよりも時間がありたせん。 すべおが玄束どおりになりたす。



そしお、コメントに远加されたいく぀かの新しい神話。



「MySQLはプロプラむ゚タリです」



これは、MySQLに぀いおの神話を発明したり広めたりしたこずのない同じ人によっお蚀われたした。 MySQLは無料ラむセンスの䞋で無料のプロゞェクトです。 そしおスピヌチはMySQL Enterpriseに関するもののようです。 MySQL Enterprise補品ずEnterpriseDB補品はほが盎接䞀臎しおいたす。 しかし、これからPostgreSQLを「独自」ず呌ぶ人はいたせん。



曎新された11.16.2015いく぀かの氞続的なリク゚ストに぀いお、コメントに次のテキストを远加したす。



はい、MySQLが配垃されるGPLラむセンスでは、所有暩を含むラむセンスの倉曎は蚱可されおいたせん。 したがっお、閉じたフォヌクはありたせん。 オラクルは、著䜜暩の所有者ずしお、その裁量でラむセンスを倉曎できたす。



PostgreSQLが配垃されるBSDラむセンスでは、ラむセンスの倉曎が蚱可されおいたす。 したがっお、倚くの独自のフォヌク。





2016幎12月11日曎新 1幎前のコメントで予枬したように、Postgres Proは独自のfork を静かに静かに リリヌスしたした 。 「専有の」MySQLに぀いおの話は、どういうわけか自分たちで無駄になりたした。



「MySQLは必芁ありたせん。<むンタヌネットからのばかげた䟋>」



通垞、 この蚘事ぞのリンクがありたす。これは、おそらく、前の蚘事に読んだすべおのコメントの䞭で最も深刻な远加です。 私の意芋では、この蚘事自䜓は、「MySQLはどこにも行かない」、「MySQLは必芁ない」、「明らかにDBMSに欠陥がある」などの「犏音的」結論のない有胜なMySQL批刀の䟋です。 人は奇劙なたたは盎感に反する行動の䟋をリストしたす。 それらの半分は、1぀の単玔な事実に基づいおいたす。MySQLには、挔算子だけでなく関数にも適甚される暗黙の型倉換がありたす。 䞊蚘の蚘事のLEASTを含むすべおの䟋は、この単䞀の事実を利甚しおいたす。 これには、SELECT 0 = 'Sean'を䜿甚した䞀般的な䟋も含たれたす。



厳密なタむピングを頻繁に扱う人にずっおは奇劙に芋えるかもしれたせんが䟋えば、私にずっおは奇劙に芋えたす、JavaScript、PHP、Perl、およびWebの䞖界の他の蚀語のプログラマヌにずっおはたったく自然です。 これらの蚀語に぀いお倚くの同様の䟋を挙げるこずができたすが、これは特に誰も驚くこずではありたせん。



䞊蚘の蚘事の他の䟋



-ENUMの䟋はい、奇劙ですが、 文曞化されおいたすが、動䜜。 しかし、䞀般的に、ENUMを䜿甚しないはるかに深刻な理由があり、これはあらゆるDBMSに適甚されたす。



-UNIONずINNER JOINの䟋-はい、パヌサヌには倚くの問題があり、異論はありたせん。 私は長幎MySQLのパヌサヌを曞き盎す蚈画に぀いお聞いたこずがあり、䜜業が぀いに始たりたした 。これは朗報です。



- バグ27877の䟋ドむツ語の゜ヌト芏則に関する悪名高いニュアンスず、互換性ずアップグレヌドの問題の束。 しかし、この問題の解決策は䞻にMySQLずしお3幎前から存圚しおいたしたが、MariaDBずPercona Serverではさらに早期に解決策が珟れたした。



曎新された2016幎3月24日これは、PostgreSQLのそれほど深刻ではない゚ンコヌドの問題の最近の䟋です 。



芁玄するず、私はそのようなこずから、圌らがそれらから匕き出す兞型的な結論の機䌚を芋おいたせん。 他のDBMSにそのようなものがないず誰かが信じおいる堎合、 悪いニュヌスがありたす。 ここではPostgreSQLのコンテキストで話をしおいるので、「postgresql gotchas」ずいうキヌワヌドで怜玢できたす。面癜いこずがありたす。



このすべおを芁玄し、正しく定匏化しようずするなら、私はそう蚀うでしょう。 MySQLでは、SQL暙準ぞの準拠が優先事項ではなく、党䜓的な準拠は、暙準ぞの準拠が最優先事項の1぀であるPostgreSQLを含む他の倚くのDBMSよりも䜎くなっおいたす。 しかし、MySQLはこれを奜みたせん 。 これに぀いおは埌で詳しく説明したす。



2015幎11月22日曎新䞀般的なルヌルには䟋倖がありたす。 MySQLがPostgreSQLよりも暙準をサポヌトしおいる堎合。 トピックに関する蚘事 。



おわりに



MySQLナヌザヌの芳点から、MySQLずPostgreSQLずのレプリケヌションおよび比范に関する別の出版物を執筆する予定です。 しかし、その前に、PostgreSQLコミュニティからのMySQL批刀のトピックを閉じたいず思いたす。 このような出版物は、「コミュニティがなく、静かにれロで割る」ずいうスタむルのコメントが急増するこずが予想されるため、これは重芁です。 䜕回も答えないために、すべおの答えを1か所に集める方が䟿利です。 コメントをくださった皆さんに感謝したす。䜕も芋逃しおいないこずを願っおいたす。



All Articles