タグ

ブックマーク / nippondanji.blogspot.com (12)

  • MySQL 5.5新機能徹底解説

    今年も残すところあとわずかとなった。2010年もIT業界にとっては変化の多い一年だったが、皆さんにとっては良い年だっただろうか?既に何度かMySQL 5.5の新機能については取り上げたが、ついに正式版がリリースされたということでここで改めて新機能を解説し、今年最後のエントリを締めくくろうと思う。 MySQL 5.5にはこれでもかっ!というぐらい新機能が追加されている。しかもいずれもナイスなものばかりだ。一般的には、ソフトウェアに新機能が追加されると重くなったり安定性が低下する事例が後を絶たないのだが、MySQL 5.5に関してはそのようなことは全くないので安心して利用して頂きたい! InnoDBの大幅な改善種々ある改善点の中でも特に目をひくのがInnoDBストレージエンジンへの改良だ。実は、InnoDBMySQL 5.1が最初にリリースされたときから、2回アップデートが行われている。My

    MySQL 5.5新機能徹底解説
    satfy
    satfy 2013/03/04
  • Not Only NoSQL!! 驚異的なまでにWRITE性能をスケールさせるSPIDERストレージエンジン

    Webサービスでは、世界中からのトラフィックを捌く必要があるため、いくらチューニングしようとも一台のRDBMSでは捌ききることが出来ないのが常だ。MySQLは最初からマスター・スレーブ型のレプリケーション機能が搭載されており、スレーブをたくさんぶら下げることによって参照の負荷をスレーブに割り振るというスケールアウトによってその問題に対処してきた。スレーブによるスケールアウトは、参照(=PV)が多いWebサイトと非常に相性が良く、幾多のWebサイトにおいて実績を作ってきているし、まだまだ利用されている。 しかしながら、サイトのトラフィックが劇的に増加してくるようになると、レプリケーションによる負荷分散では追いつかなくなってきた。そこで人々がとった選択肢は、memcachedを利用することである。memcachedはインメモリ型の高速なKVSであり、参照・更新性能はMySQLより格段に高い。M

    Not Only NoSQL!! 驚異的なまでにWRITE性能をスケールさせるSPIDERストレージエンジン
  • Using filesort

    去年ソートに関する記事を書いたが、今日はその続きである。 MySQLでEXPLAIN SELECT...を実行するとExtraフィールドでよく見かける「Using filesort」という文字列。Filesortって一体なんだろう?と思ったことはないだろうか。単刀直入に言ってFilesortの正体はクイックソートである。 クエリにORDER BYが含まれる場合、MySQLはある程度の大きさまでは全てメモリ内でクイックソートを処理する。ある程度の大きさとはsort_buffer_sizeであり、これはセッションごとに変更可能である。ソートに必要なメモリがsort_buffer_sizeより大きくなると、テンポラリファイル(テンポラリテーブルではない)が作成され、メモリとファイルを併用してクイックソートが実行される。 Filesortは全てのソート処理において実行されるわけではない。前回の記事

    Using filesort
    satfy
    satfy 2010/01/26
  • MySQLレプリケーションを安全に利用するための10のテクニック

    MySQLのレプリケーションは非常に簡単に使える割には応用の幅が広いので非常に人気のある機能の一つである。レプリケーションの応用分野は例えば、 バックアップ 参照系の負荷分散 HA(高可用性) ディザスタリカバリ(サイト間レプリケーション) BI(レポーティングetc) という風にとても多くのバリエーションがある。このブログを読んで頂いている皆さんの中にもレプリケーションを使っている方は多いのではないだろうか。ご覧の通りMySQLのレプリケーション機能はミッションクリティカル分野でも利用されているが、レプリケーションの使い方が適切でないとシステムの安定稼働に支障を来してしまってDBAやシステム管理者の肉体的、精神的負担が増大してしまう。逆にレプリケーションを堅牢に運用することが出来ればマクラを高くして眠れるというものだ。レプリケーションはMySQLの代表的な機能であるので、レプリケーション

    MySQLレプリケーションを安全に利用するための10のテクニック
    satfy
    satfy 2009/12/09
  • MySQLerのTwitterアカウントまとめ。

    松信氏の、 MyISAMとInnoDBのどちらを使うべきか Twitterで話題になってたので簡単にまとめました。 というエントリが人気を博しているが、松信氏が言うように最近はTwitterMySQL関連の話題も結構増えてきているように思う。Twitterの流行の勢いは凄まじく、今は右を向いても左を向いてもTwitter、寝ても覚めてもTwitterも杓子もTwitterという雰囲気である。従ってMySQLTwitterで盛り上がるのは当然の成り行きというもであるし、Twitterを活用しない手はない。 しかしMySQL関連の話で盛り上がると言っても「じゃあ誰をフォローすれば話に入れるんだよ?!」と多くの皆さんは疑問に思われることだろう。そこで、今日はMySQL関連のTwitterアカウントを独断と偏見と愛と勇気と努力をもって紹介する。MySQLの情報が欲しい人、もしくは話題の輪に

    MySQLerのTwitterアカウントまとめ。
    satfy
    satfy 2009/12/02
  • 限界までMySQLを使い尽くす!!

    どこまで出来るか?!やれるところまでやってやるぜ!!と、威勢が良いのは若い間だけの話。オトナのオトコは、攻めるときはとことん攻めるが自らの限界もわきまえて賢く振る舞うのがスマートってものである。というわけで、今日はMySQLのいろいろな限界についてまとめてみる。皆さんも是非MySQLの限界を知り、MySQLをもっとスマートに使って頂きたい。 SQL文の最大長 MySQLサーバーが実行出来るSQL文の最大長は、max_allowed_packetシステム変数で表される。max_allowed_packetの最大値は1GBである。max_allowed_packetの値はセッションごとにも設定可能なので、デフォルトではそこそこの値(16MBなど)に設定しておいて、必要に応じて大きな対を使うと良いだろう。 データベースの個数 データベースオブジェクトの個数に制限はない。データベースオブジェクトは

    限界までMySQLを使い尽くす!!
    satfy
    satfy 2009/05/19
  • ALTER TABLEを上手に使いこなそう。

    テーブル定義を変更したい。インデックスが壊れてしまったので再作成したい。そんな場合はALTER TABLEを使う。ALTER TABLEはテーブル定義を変更するお馴染みのコマンドであるが、その挙動は意外と知られていない。(エキスパートとおぼしき方々からも度々質問を受ける。)そんなわけで、今日はALTER TABLEについて解説しようと思う。 まず結論から言うと、なんとMySQLのALTER TABLEはテーブルのデータを全てコピーし直すのである。なんて無駄なことを!?と思うかも知れないが、テーブル定義(スキーマ)の変更を動的に行うには、ストレージエンジンによるサポートが必要であり、動的なスキーマ変更をサポートしているストレージエンジンはまだ少ないのである。(動的スキーマ変更をサポートしているのはMySQL Clusterぐらいだ。しかも追加だけ。)デフォルトで利用出来るMyISAMはInn

    ALTER TABLEを上手に使いこなそう。
    satfy
    satfy 2009/05/11
    ALTER TABLEによるテーブル再作成他
  • デュアルライセンスとGPL

    GPLソフトウェアを用いてビジネスを行うモデルの一つに、デュアルライセンスというものがある。デュアルライセンスとは一つのソフトウェアをGPLとその他の私有ライセンスの両方でリリースするということを意味する。ちょっと意外かも知れないが、ソフトウェア配布時に同梱するライセンス条項さえ変更すれば、一つのソフトウェアを異なるライセンスでリリースすることに特に制約はない。(ちなみに、デュアルライセンスはMySQLがとっているビジネス形態である。) デュアルライセンスモデルを用いると、次のようなことが可能になる。 GPLライセンスのメリットを最大限に享受して、ユーザの拡大やソフトウェア品質の向上を期待出来る。 私有ソフトウェアにはGPLソフトウェアを組み込めないので、そのようなユーザには私有ライセンスバージョンを販売することができる。 私有ライセンスを組み込むのは、OEMとも呼ばれるビジネス形態である

    デュアルライセンスとGPL
    satfy
    satfy 2009/05/07
    ライセンス
  • 爆速SSD Fusion-io ioDrive Duo現る。ただしインターフェイスはPCI Expiress

    PC Watchの記事で Fusion-io、読み取り1.5GB/secの世界最速SSDPCI Express接続で最大容量1.2TB というニュースを見かけたのだが、この製品がなんとも凄い。 シーケンシャルリードは1.5GB/sec、シーケンシャルライトは1.4GB/secというからまさに爆速!!最近人気のインテル製SSDでもシーケンシャルリードが250MB/sec、シーケンシャルライトは170M/secぐらいだからまさに桁が違う。ただしこの製品、インターフェイスはPCI Expressであり、残念ながらノートPCでは利用出来ない。MacBook Proでウハウハ快適生活!!は出来ないわけである・・・残念。 製造元のFusion-ioはサーバー向けだと謳っているのて爆速SSDでウハウハ快適データベース生活!!なら可能だ。サーバー用途で使う場合、PCI Express接続だと共有スト

    爆速SSD Fusion-io ioDrive Duo現る。ただしインターフェイスはPCI Expiress
  • オトコのイメトレ2008

    エンジニアたるもの想像力が必要だ。 複数のmemcachedサーバーを起動させてキャッシュを分散させるような運用では、各データをそれぞれどのサーバーにキャッシュするかを自動的に選択する必要がある。そのアルゴリズムとして、コンシステントハッシュ法というものがあるのだが、これがなんとも見事なアルゴリズムなのである。 コンシステントハッシュ法はハッシュの一種(注意!!オヤジギャグ!!突っ込むべし!!)なので、特定のキーに対して特定のmemcachedサーバーをつねに選択するためのアルゴリズムである。コンシステントハッシュ法ではない最も単純なハッシュ法としては、MD5などでキーからハッシュ値を算出し、memcachedサーバー台数で割り算をしてその余りを用いるというものがある。実際、このアルゴリズムは非常にシンプルであるし、うまく機能するだろう。ただしサーバー台数が一定であるという条件の下では。

    オトコのイメトレ2008
    satfy
    satfy 2009/04/30
  • MySQLのEXPLAINを徹底解説!!

    以前、MySQLを高速化する10の方法という投稿で「EXPLAINの見方についてはいずれ解説しようと思う」と書いてしまったので、今日はその公約?を果たそうと思う。 MySQLのチューニングで最も大切なのは、クエリとスキーマの最適化である。スキーマの設計は一度決めてしまうとそのテーブルを利用する全てのクエリに影響してしまうためなかなか変更することは出来ないが、クエリはそのクエリだけを書き直せば良いので変更の敷居は低い。そして遅いクエリをなくすことは、性能を大幅に向上させるための最も有効な手段である。従って、アプリケーションの性能を向上させたいなら、まず最初にクエリのチューニングを検討するべきなのである。 最適化するべきクエリはスロークエリログやクエリアナライザで見付けられるが、ではそのようなクエリが見つかった場合にはどのように最適化すればいいのか?そのためにはまず現在どのようにクエリが実行さ

    MySQLのEXPLAINを徹底解説!!
    satfy
    satfy 2009/04/30
  • 最強のMySQL HA化手法 - Semi-Synchronous Replication

    MySQL 6.0で搭載される予定の機能の一つに、Semi-Synchronous Replicationというものがある。コイツを使うととんでもなく凄いHA化ができるので、今日はその方法を紹介しよう。 まずはSemi-Synchronous Replicationの機能説明から。そもそもSemi-Synchrounousってナニ?どうして完全な同期でもなく非同期でもなくSemi-Synchronousなの?という疑問をまずは解消したいと思う。さっそく次の図を見て欲しい。 これはSemi-Synchronous Replicationの動作を図で表したものである。図だけではなんだかよく分からないと思うので、以下に各ステップの詳細を説明する。 アプリケーション(クライアント)からトランザクションをCOMMIT要求を出す。 バイナリログを更新する。 ストレージエンジン(テーブル)を更新する。

    最強のMySQL HA化手法 - Semi-Synchronous Replication
    satfy
    satfy 2009/04/21
  • 1