タグ

MySQLとdatabaseに関するdefiantのブックマーク (56)

  • MySQL 8.0.18 の実装を読み解きながら簡単なストレージエンジンを自作する - それが僕には楽しかったんです。

    はじめに MySQL をビルドする ストレージエンジンを自作する Example エンジンをベースにする handlerton の作成とインスタンス化 テーブルを作成する 余談・気になったところ テーブルを開く INSERT の実装 ha_tina の存在 テーブルスキャン store_lock の実装 external_lock の実装 rnd_init の実装 info の実装 extra の実装 rnd_next の実装 おわりに はじめに 卒論書くのに飽きてきて何かやりたくなったので急にストレージエンジンを書くことにしてみた。 MySQL のストレージエンジンを実装していく中で、色々できるかなと思っていたけど、やってみると MySQL の内部実装について色々知らないといけないことが多くインデックスとかトランザクションとかそういうところは実装できなかった。 github.com My

    MySQL 8.0.18 の実装を読み解きながら簡単なストレージエンジンを自作する - それが僕には楽しかったんです。
  • MySQLを割と一人で300台管理する技術

    2017/09/05 db tech showcase Tokyo 2017 http://www.db-tech-showcase.com/dbts/tokyo

    MySQLを割と一人で300台管理する技術
  • United States

    How to fix a Windows black screenGetting the dreaded Windows black screen, with or without a cursor? Here are some simple (and not so simple) ways to banish it and get your desktop back.

    United States
  • 1台から500台までのMySQL運用 MySQL Beginners

    Designing Opeation Oriented Web Applications / YAPC::Asia Tokyo 2011

    1台から500台までのMySQL運用 MySQL Beginners
  • tpcc-mysqlによるMySQLのベンチマーク - SH2の日記

    データベースに対する負荷ツール、ベンチマークツールは世の中にたくさんあるのですが、単一テーブルに対する主キー検索しかしないものなど、CPUクロック勝負の比較的単純なものが多くを占めているようです。そこで日は、もう少し高度なベンチマーク仕様としてのTPC-Cと、MySQL向けの簡易実装であるtpcc-mysqlをご紹介します。 TPC-Cとは卸売業における注文・支払いなどの処理を擬似的に再現した業務モデルで、TPCという業界団体によって策定されたものです。9種類のテーブルに対する5種類のトランザクションがミックスされており、そのうち注文処理のスループットを測定結果として利用します。公式サイトで仕様書(PDF)が公開されています。 テーブル定義は以下のようになっています。ちなみにこのER図はMySQL Workbenchで出力したものです。 warehouse:倉庫です。倉庫表のレコード数は

    tpcc-mysqlによるMySQLのベンチマーク - SH2の日記
  • クラウドに最適化したMySQLのフォーク「Drizzle」が正式版公開

    MySQLからフォークし、クラウド用途に最適化して開発された「Drizzle」が3月15日に最初の正式版を公開しました。 MySQLはよく知られたオープンソースのリレーショナルデータベースです。そのMySQLを、トランザクション機能を維持したままクラウドのような大規模分散環境での並列処理とマルチコアCPUに最適化したのが「Drizzle」です。 多くのWebサービスのバックエンドでは、高速なデータベース処理を実現するために多数のMySQLサーバを用いた分散処理をしていますが、Drizzleではそうした用途に特化して設計されています。 NoSQLに対するSQLからの回答 Drizzleは、大規模なWebサービスのバックエンドデータベースとして利用することを想定しているため、Web系サービスのバックエンドとしてはほとんど使われないだろう機能が省かれています。例えば、ACL(アクセス制御リスト)

    クラウドに最適化したMySQLのフォーク「Drizzle」が正式版公開
  • クラウド対応のスケーラブルなMySQLデータベース、米Xeroundが発表

    MySQL for the Cloud」。スケーラブルでつねに稼働し続けるというデータベースサービスを米Xeroundが発表し、プライベートベータとして一部に公開を始めています。 プレスリリースの中で同社はこのこのサービスの特徴を次のように表しています。 Xeround’s unique patented technology brings a new approach to data management in the cloud, aiming at providing the best of both worlds – the transactional and query capabilities of relational databases with the simplicity and scalability of NoSQL data stores. Xeroundのユニ

    クラウド対応のスケーラブルなMySQLデータベース、米Xeroundが発表
  • 最強の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
  • MySQL 5.5登場

    MySQL 5.5がリリースされた。「えっ?!この前5.4をリリースしたばっかりでしょ?!まだ5.4すら使ってないよ!!」と驚かれた方はご安心を。これは開発リリースモデルが変更されたためで、MySQL 5.4はこれでいったん開発終了して今後の開発はバージョン5.5をベースにして継続されることになる。バージョン5.4も5.5も「マイルストーンリリース」(以下MR)という位置づけであり、GA(正式リリース)版ではない点に注意して頂きたい。MR版の位置づけは次のようなもの。 品質的にはRC(リリース候補)版と同レベル(従ってほぼ安定している) 3〜6ヶ月ごとに新しいバージョンが出る 新しいMR版では機能が追加されることになるが、RC版と同レベルまで安定した機能だけが追加の対象になる MR版へ追加する予定の機能については別のブランチで開発が進められる 12〜18ヶ月ごとにMRのうち一つをGA版へと

    MySQL 5.5登場
  • MySQLに纏わる10の都市伝説

    誰の口から飛び出したのかは定かではないが、巷ではMySQLにまつわる様々な「都市伝説」がまことしやかに囁かれているようだ。恐らくMySQLに対する理解が低い人や、MySQLがあまり好きではない面々によってFUDっぽく言われているのだと思うが、世の中にはそのような「都市伝説」を真に受けてしまう人が居るのもまた事実であである。MySQLにおける昨今の開発スピードには目覚ましいものがあり、MySQLは性能・安定性・使い易さ共に進化し続けている。(特に先日リリースされたMySQL 5.5は性能・安定性・使い易さを両立している優れたバージョンだ!!)しかし「都市伝説」で語られることは総じて「MySQLはダメな子ちゃん」であるという烙印を押すものばかりであり、MySQLerとしてはそのような言われ無き汚名を全身全霊をもって晴らさなければならない使命を背負っている。そこで、今日はMySQLについて語られ

    MySQLに纏わる10の都市伝説
  • MySQL 5.5.0 リリース間近!? - sakaikの日々雑感~(T)編

    ミラーサイトに MySQL 5.5.0 のリリースファイル群が撒かれはじめていますね。今日か明日くらいにリリースの案内文が出されることと思います。 ・一部の人の待望だった Semisynchronous Replication が含まれているようです。 ・まだすべてのファイルが展開され終わっていませんので判りませんが、来 beta とファイル名に含まれるべきところが含まれていません。いきなり G.A.??まさか。。。 ・MySQL 5.4 ブランチへのコミットが先月後半でぱたっと止まっています(今月頭に1つだけぽこっとコミットされていますが)。 5.4中止→5.5にすべてマージ、と考えて良いのか!? ・追記:DATETIME列でレンジパーティションを作れるようになった!(@sh2nd さんの情報.tnx) ・追記:バージョン名にm2とついているのは「マイルストンリリース」だそうです(tn

    MySQL 5.5.0 リリース間近!? - sakaikの日々雑感~(T)編
  • 実録、ほぼ無停止なMySQLのフェイルオーバ (動画もあるよ) - (ひ)メモ

    レプリケーションしてるMySQLで、マスタやスレーブが障害停止した場合のリカバリプラン でも掲げたゴールである、「マスタが落ちてもぐーすか寝ていられるようにしたい」がほぼできたので、ほとんどサービスが停止することなく、フェイルオーバする様をスクリーンキャストに収めました。 埋め込みプレイヤーだと、小さくてわからないと思うので、リンク直接でみてください。 http://www.irori.org/pub/mysql-mm.mov 登場するホスト 登場するホストは2台、db901db902です。 最初は、db901が更新系クエリを受けるプライマリでdb900の浮動IPアドレスを持っています。 画面分割 画面は5分割しています。 左上 = 「select sysdate(),@@server_id」をdb900に対して(sleep 1しながら)延々と実行しまくりんぐ 右上 = ping -n

    実録、ほぼ無停止なMySQLのフェイルオーバ (動画もあるよ) - (ひ)メモ
  • (特にMyISAMを使っていた)ウェブ屋さんがInnoDBを使う場合の設定項目 - kazuhoのメモ置き場

    InnoDBはMyISAMと比較して安全(OSクラッシュや電源断が発生してもテーブルが壊れない)分、書き込みが遅い。データベース屋さんからすると、それは当然のことでMyISAMがおかしいんだ、ということになり、だからバッテリバックアップ機能のついたRAIDカードを使うんだ、という話になる。でも、MyISAMを使っているウェブ屋さんの現場では、場合によって多少データが消えてもかまわないから、安いハードウェアで大量のアクセスを捌きたい... って乖離があるんじゃないかなーと思ってる。 そのような場合には、my.cnf の innodb_flush_log_at_trx_commit パラメータを調整することで、MyISAMに比肩する書き込み速度を得ることができる(そのかわり、クラッシュや電源断の場合は、設定によって直近1秒以内の変更が失われる)。 他のパラメータも含めて書いておくと、データベー

    (特にMyISAMを使っていた)ウェブ屋さんがInnoDBを使う場合の設定項目 - kazuhoのメモ置き場
  • レプリケーションしてるMySQLで、マスタやスレーブが障害停止した場合のリカバリプラン - (ひ)メモ

    MySQLで、レプリケーションベースのHAな構成について考えたメモです。 3台(というか2台+1台)がいいかなぁと思っていて、前半はその理由を、後半では{マスタ,スレーブ}が{再起不能になった,ちょっとダウンしてすぐ復帰した}場合のリカバリプランについて書きます。 今のところはこれがベストかなと思っているのですが、「こうしたほうがいいと思う!」「ここがおかしい!」などなどのご意見はコメント、TBなどでいただけるとうれしいです。 ゴール マスタが落ちてもぐーすか寝ていられるようにしたい リカバリの作業はできるだけ単純に、かつ、短時間で完了するようにしたい めんどくさいのはいや 基構成、方針 2台+1台 サービスで使うのは2台 (db1, db2) もう1台は管理用 (db3) スレーブを多数並べる構成にはしない 台数増えると管理コストが上がる マスタダウン時のフェイルオーバとそのフェイルバ

    レプリケーションしてるMySQLで、マスタやスレーブが障害停止した場合のリカバリプラン - (ひ)メモ
  • MyNA Web Site

    Home 資料置き場 作者プロフィール † 氏名:松信 嘉範 (MATSUNOBU Yoshinori) 所属:サン・マイクロシステムズ株式会社 役割:MySQLコンサルティング Blog:http://opendatabaselife.blogspot.com/ Twitter:http://twitter.com/matsunobu ↑

  • innodb_flush_logs_at_trx_commit のベンチマーク - kazuhoのメモ置き場

    binlog の設定等によって大きく変わると思うので要注意ですが、テストによっては、これぐらい差が出ます。 hdparm -W trx_commit 秒 0 0 25.492 0 1 281.078 1 0 24.138 1 1 67.051 測定環境は MySQL 5.1.35; linux 2.6.18; x86_64。 テーブルのスキーマは、 CREATE TABLE `hoge` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `text` varchar(255) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=500001 DEFAULT CHARSET=utf8;mysqlslap のパラメータは、 mysqlslap -c 20 -i 5000 -q '

    innodb_flush_logs_at_trx_commit のベンチマーク - kazuhoのメモ置き場
  • データベースを用いたセッションデータ管理について - LukeSilvia’s diary

    Web アプリケーションとは切っても切れないセッション機構。DB ベースでセッション管理を行なって得られた知見と、それを元に考察した結果をまとめてみます。 セッションデータの特性 DB で管理される他のデータに比べ、セッションデータはかなり特殊です。主な特徴は次のような感じ。 データが増加するのが速い 定期的な削除が必要 頻繁に更新される リクエスト毎に読みに行く必要がある このデータを読めないとアプリケーション全体にアクセスできない アクセス頻度が高いということです。あと、1つ目の特徴からセッションデータについては意識的に管理してやる必要があります。 現在の環境 アプリケーションの領域が少し特殊で、セッションデータがやたらたまります(ユーザ数何百万のサービスとかそういうのではないです)。 RDBMS MySQL 4.0.22 ストレージエンジン InnoDB レコード数 6千万 テータサ

    データベースを用いたセッションデータ管理について - LukeSilvia’s diary
  • 限界までMySQLを使い尽くす!!

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

    限界までMySQLを使い尽くす!!
  • LINEAR HASHパーティショニングってなんだ?

    MySQL 5.1から利用出来るパーティショニングの種類には、次の4つがある。 RANGEパーティショニング LISTパーティショニング [LINEAR] HASHパーティショニング [LINEAR] KEYパーティショニング RANGEパーティショニングは値の範囲を指定する。次のように日付を用いて範囲を指定するのが代表的な使い方だ。詳細はこちらの記事(パーティショニングの使用例 - http session情報)を見て欲しい。 mysql> CREATE TABLE http_session ( -> session_id VARCHAR(32) NOT NULL, -> last_access TIMESTAMP NOT NULL, -> created TIMESTAMP NOT NULL, -> t_session_data VARCHAR(1024) -> ...(中略)...

    LINEAR HASHパーティショニングってなんだ?
  • さらにMySQLを高速化する7つの方法

    MySQLを高速化する10の方法という記事がとても好評だったようである。記事を読んで頂いた皆さん、ありがとう。 この記事に対する便乗(?)でWeb屋のネタ帳: PostgreSQLを高速化する16のポイントという記事を書いて頂いたようだが、そちらの方もかなり人気だったようである。他人が作ったソフトウェアに改良を加えるというフリーソフトウェアやオープンソースソフトウェアの精神も基は便乗であるので、便乗については大いに賛成したいというかむしろ取り上げてくれてありがとう!!と思うわけであるが、ここでさらに俺はこう考える。 と。 Web屋のネタ帳さんの記事では16のポイントが紹介されているが、漢(オトコ)のコンピュータ道の記事は10の方法だったのであと6つ足りない。オトコは数で勝負!!というわけで今日はネタを振り絞ってさらに7つのMySQL高速化テクニックを紹介しよう。 1. インテルコンパイラ

    さらにMySQLを高速化する7つの方法