English
こんにちは。インフラエンジニアの綿引です。 早速ですが、今回はMySQLのテーブル圧縮について記載したいと思います。 但し、MySQL 5.7から実装された透過性ページ圧縮でなく、 MySQL 5.1のInnoDB Plugin時代からある圧縮です! 個人で運用しているMySQLが5.6なのですが、 ストレージが逼迫して来たので、旧来の圧縮を試してみました。 MySQL 5.6以前で「ディスク容量が足りない!」という方がいらっしゃれば、 参考にして頂ければと思います。 圧縮の仕組み まずは圧縮の仕組みについて図を作ってみました。 非圧縮ページ(16KB) と記載してあるものが通常のページだとお考え下さい。 今回、実施する圧縮の仕組みとしては、 通常はこの非圧縮ページがそのままストレージに保存される所を、 圧縮ページを作成しストレージに保存することによって、 ディスクの消費量を抑えられるとい
12.1 目的:パフォーマンスを最適化する パフォーマンスの最適化にはインデックスが重要だよね。 インデックスを使おう。 参考:Qiita - MySQL InnoDBのIndex 12.2 アンチパターン:闇雲にインデックスを使用する さあ、インデックスを使ってみよう! しかし、もしもインデックスに対する正しい知識が無いと以下の3パターンにハマりがち。 インデックスを全く使わない。 「インデックス怖い!!オーバーヘッド怖い!!」 インデックスを全テーブルに定義する。 「インデックスがあれば絶対に安心だ(フラグ」 インデックスを適切に定義していても、SQLがクソ。 「無敵のインデックスでなんとかしてくださいよぉ〜〜〜〜!!」 以下、それぞれについて詳しく見て行きましょう。 12.2.1 ケース1:インデックス恐怖症 インデックス恐怖症の患者たちは、何かと「オーバーヘッドが〜オーバーヘッドが
どんなに便利な道具でも、長年使い続けているうちにホコリがたまり、初期の優れたパフォーマンスを維持できなくなります。Webサイトも同様で、長年の蓄積からたまったゴミファイルなどを定期的にクリーニングしてあげることで、パフォーマンスを維持させる必要があります。 そこで今回は、WordPressサイトを快適に運用するためのTipsとしてクリーニングに焦点を当ててご紹介していきます。 なお、これから紹介するプラグインの中にはデータベースに変更を入れるものも含まれていますので、あらかじめバックアップをとった上で作業に入るようにしましょう。 「WP-Optimize」 不要なリビジョン、下書き、コメントなどをデータベースから削除できるプラグイン「WP-Optimize」からご紹介します。 WP-Optimize 長く運用していくほど貯まる不要なデータをデータベースから一掃! インストールが終了すると管
MariaDB Galera Cluster は MariaDB を同期レプリケーション型のマルチマスタ構成で冗長化するためのアプリケーションだ。 マスタ・スレーブ構成のようにフォールバック用のスクリプトを自分で用意する必要もないし、マルチマスタ構成なのでクラスタを構成するノードは全て書き込みできる (ただし、全てのノードに書き込みをロードバランスさせるとデッドロックの可能性が増える)。 MySQL Cluster のようにトランザクション分離レベルが落ちることもない。 障害が発生してもクラスタを構成する半分のノードの故障までなら耐えられるし、障害の復旧後は自動で正常なノードとの同期が走るようになっている。 一見すると良いところしかないように思える Galera Cluster だけど、メリットがあればもちろんデメリットもある。 MariaDB Galera Cluster の既知の制限
みなさまごきげんよう! 嗚呼蛙でございます! 一昨日amazonアソシエイトの審査を無事通過したことを祝って、露骨なアフィ目的記事を書いてみました。 今日はデータベースの操作を行う言語『SQL』を実践的に学習できるサイトを発見したので、それについて書いていこうと思います。 SQLってなに? ブラウザ上でSQLの学習ができるサイト 日本語でのSQL学習 SQLってなに? SQLを知らない方のためにSQLについて簡単に説明しておくと、例えばネットショップで買い物をする時にこんな感じで「会員情報」「送付先」」「購入品」を登録しますよね。 【会員情報】 【送付先】 【購入品】 すると、ブラウザから入力された情報は、SQLを使ってこんな感じでデータベースに書き込まれます。 【会員テーブル】 【送付先テーブ】 【売上テーブル】 こんな風にブラウザから送られた情報をデータベースに書き込んだり、蓄積された
4月中旬ころになりますが、新著が出ます。SQLのパフォーマンスを主題にした本で、実行計画を読むことで、なぜこのSQLは遅いのか、あるいは速いのかをデータベースの内部動作まで把握して理解しよう、という趣旨です。 リレーショナルデータベースというのは、SQLという自然言語を模したインタフェースによって、低次のレイヤーを隠蔽する意図で作られたミドルウェアなので、本当は実行計画などという手続レベルの世界をユーザが覗き見るのは、本末転倒なところもあります。ただそうはいっても、現実にSQLが遅かったら原因を解析せざるをえないわけだし、大体本当にブラックボックスにしたいなら、なんでどのDBMSも実行計画を見られる手段なんか用意してるんでしょうね不思議ですね、という理想と現実の狭間で悩むエンジニアの方々に少しでもベターな解に辿りつけるアプローチを提示できれば、と考えております。 以下まえがきと章立てです。
2013年12月12日14:03 MySQL MySQLでカラムやインデックスの追加、削除をするときのロックの話など すっかり2013年も終わりに近づいてきましたね。さて、今回はMySQLでカラムやインデックスの追加、削除をするときに知っておいた方がいいかなーと思った注意点の話です。 カラムやインデックスの追加、削除を行う際にはテーブルが共有ロックされる まず、カラムやインデックスの追加、削除といったいわゆる ALTER TABLE に相当する処理を行うとテーブルが共有ロック(読み込みのみ受け付け、更新処理は受け付けないというロック)されるという話です。 この辺の話は @nippondanji さんが詳しく書かれています。 漢(オトコ)のコンピュータ道: ALTER TABLEを上手に使いこなそう。 1. テーブルをTL_WRITE_ALLOW_READロックする。このロックは特殊なロック
1. MySQL Admin が見た Devs の常識、 DBA は非常識 2013/09/14 yoku0825@MyNA PHP Conference 2013 2. \こんにちは!/ ● yoku0825 ● とある企業の DBA ● MySQL 歴 5 年くらい ● オラクれない ● ポスグれない ● 嫁の夫 ● せがれの父 ● 日本 MySQL ユーザ会 (MyNA) のスベり担当 3. \しゃべること!/ ● 日常的に MySQL のソースコードに触れる変態 DBA がフツーの Devs に投げた愛のマサカリ集 ( のつもり ) ● ウチの開発言語は PHP > Java >> Ruby らしいです ● ウチでは DBA がサーバーの構築、 Devs が設計・ テーブル構築・運営、 DBA はトラブルシュートや改 善提案 ( 運用 ) 、というサイクルで回しています。
kamipoさんが補足を書いてくれたので、参照するとよいです。 基礎的だけど、SELECT ... FOR UPDATEをちゃんと理解できてない気がするな、ということで実際にコンソールで打ちながら挙動を確認してみた。 今回確認した環境は、 mysql> show variables like 'tx_isolation'; +---------------+-----------------+ | Variable_name | Value | +---------------+-----------------+ | tx_isolation | REPEATABLE-READ | +---------------+-----------------+ 1 row in set (0.00 sec) mysql> show variables like 'version'; +-----
前回の記事で記載していたベンチマークの結果です。 検査は以下のパタンで行いました。 設定なし barrier=1 (明示的on) barrier=0 (明示的off) 尚、ベンチマークにはdbenchを使用しました。 dbenchはデータの書き込みを行ってスループットを求めようとします。今回の設定ではwriteに効いてくる筈なので、このツールで評価すると分かりやすいはずです。 先ずはdbenchのインストール方法。 Lubuntuの場合はaptからサクッとインストール出来ます。 sudo apt-get install dbench これで、適切な引数を与えれば試験を行えます。 試験は以下のコマンドで実施しました。 dbench 5 -D . > /保存先/dbench.log 結果は以下の通りです。 Throughputclientsprocsmax_latency 未設定 2.8759
久しぶりに「タッチ」を見てドキドキしました GW前半2日目、皆様いかがお過ごしでしょうか。 「引きこもり系エンジニア」を自称する私は、せっかく外出したのにすぐ帰ってきてしまい、PCとテレビの前で平日と変わらないお仕事ライフです。 テレビと言えば先日、「タッチ」が再放送していました。みなみちゃん、いつ見ても可愛いわぁ...*1。そして妄想をかきたてまくる主題歌に萌え殺されまくったあの日々。 ということで*2、今回は、先日のブログで紹介した『スッキリわかる SQL 入門』で公式に対応をうたった、我ら開発者の強い味方「H2 Database」を紹介していこうと思います。 H2 Databaseとは H2 Databaseは、Javaだけで記述されているオープンソースのRDBMSです。もともとHSQLDBを作っていたトーマス・ミューラーさん*3が、サラから作り直したものです。 「動作が超速い」とい
比較的新しいカーネルを採用したLinuxディストリビューションでは、ファイルシステムのI/Oバリア (I/O barrier)機能がデフォルトで有効になっています。例えばRedhat Enterprise Linux (RHEL) 6やSUSE Linux Enterprise Server (SLES) 11等はインストール直後の状態でext4ファイルシステムのI/Oバリアが有効になっているようです。 I/Oバリアは簡単にいうと、「バリア命令」の後で発行されたI/Oは、バリア命令の前に発行されたI/Oの後に必ず実行されるようにする仕組みです。つまりI/Oの順序(物理ディスクに反映される順番)をまもらせる仕組みといえます。 ファイルシステムにI/Oバリア機能が追加されたのは、ファイルシステムが不整合な状態になる可能性を減らすためです。 そもそも、急な電源断でもファイルシステムの不整合が起こ
いちいさんにお誘いいただいて、勉強会で発表をすることになりました。 InnoDB Deep Talk #1 : ATND おそらく初見では内容が難しいと思いますので、先に資料を公開しておきます。 プレゼンテーション資料 (PDF) テストデータ生成スクリプト (JdbcRunnerで利用します。) プレゼンテーション資料からリンクしているウェブサイトの一覧です。 MySQL Bugs: #64567: Last_query_cost is not updated when executing an unique key lookup Understanding and Control of MySQL Query Optimizer: Traditional and Novel Tools and Techniques: MySQL Conference & Expo 2009 - O'R
Using a list of countries generated by The World Factbook database, flags of countries fetched from Wikipedia (as of 26th May 2007) are analysed by a custom made python script to calculate the proportions of colours on each of them. That is then translated on to a piechart using another python script. The proportions of colours on all unique flags are used to finally generate a piechart of proport
この記事は PostgreSQL Advent Calendar 2012 の13日目の記事です。 昔からデータベースエンジン関係の研究をしているうちの研究室 では、「PostgreSQLを使う」というとPostgreSQLのコードをいじってTPCベンチマークを走らせることを指すので、未だにSQLとか書けなくて困ることが多いのですが、幸か不幸かPostgreSQLのソースコードはそこそこ読めるようになりました。 そんなわけで、PostgreSQLのソースコードの中でも、今回のAdvent Calendarのネタとしてメモリ管理の部分について紹介します。 これからPostgreSQLのコードを読んでみたいという人にとっては、コードのどの部分を読んでも必要となる知識なので、割と役に立つとおもいます。 【宣伝】大晦日にデータベースの同人誌をコミケで売ります 本題に入る前にいきなり宣伝で恐縮ですが
こんにちは、keiです。 今回は、MySQLのチューニングに大活躍な「Jet Profiler」というツールをご紹介します。 Jet Profilerとは Jet Profilerは、MySQL向けのクエリアナライザです。 クエリチューニングは、DBパフォーマンスチューニングの中でも重要な作業の1つですが、 Jet Profilerを使えば、その作業をGUIで直感的に行うことができます。 フリーウェアの形態で提供されており、機能限定版であれば無料で利用することができます。 購入する場合は、$499となります。 詳細情報、ダウンロードは公式ページからどうぞ。 http://www.jetprofiler.com/ja/ Jet Profilerの魅力 その1 導入のしやすさ 通常のWindowマシンに、普通のアプリケーションをインストールする感覚でインストールが可能です。 イン
というわけで、JPOUG> SET EVENTS 20120721 | Japan Oracle User Groupに参加して発表をしてきました。通常の勉強会と比べて発表者と聴講者の一体感を増すための工夫がなされていて、とても良かったと思います。有限コーヒーかと思ったら無限ビールだったのも驚きです。JPOUGの運営メンバのみなさま、会場を提供してくださった日本オラクルのみなさま、当日お越しいただいたみなさま、どうもありがとうございました。 私のセッションでは、データベース負荷テストツールまとめ(5)と題して過去4回分のまとめと自作ツールの紹介をさせていただきました。JdbcRunnerはOracle Database、MySQLとPostgreSQLの間でTPC-BとTPC-Cの性能比較ができる唯一のオープンソースソフトウェアですので、いろいろ試してみていただければと思います。試した結果
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く