・データベース的な観点でのソーシャルゲームの特徴 ・データモデル ・ソーシャルゲームに従来型RDBMSを使うべきか、�流行りのNoSQLで行くべきか ・負荷対策 (アーキテクチャ面) ・負荷対策 (ツール面) ・インフラエンジニアのキャリアについて

■■序論 徳丸さんのスライド「いまさら聞けないパスワードの取り扱い方」に見られるように、昨今、ウェブアプリケーションの設計要件として、サーバ内に侵入された場合でもユーザーのパスワードをできるだけ保護すべきという論調が見受けられるようになってきました。 上掲のスライドでは、その手法としてソルトつきハッシュ化を勧めています。しかしながらスライドに書かれているとおり、ソルトつきハッシュには、複雑なパスワードの解読は困難になるものの、単純なパスワードを設定してしまっているユーザーのパスワードについては十分な保護を提供できないという問題があります。そして、多くのユーザーは適切なパスワード運用ができない、というのが悲しい現実です。 ソルトつきハッシュを使った手法でこのような問題が残るのは、ウェブアプリケーションサーバに侵入した攻撃者がユーザーの認証情報をダウンロードして、認証情報をオフライン攻撃するこ
MySQLコマンドラインツールで使えるコマンド小ネタ 2012-12-12 知らなくても何とかなるけど、知っておくと役に立つmysqlシェルから使えるコマンド。 systemコマンド MySQLのプロンプトを開いたままで、ロードアベレージを見たいとか、SQLを書いておいたファイル名を見たい、という時は、OSのシェルで実行できるコマンドをMySQLシェルから実行するsystemコマンドを使えばよい。 mysql> system uptime 10:47:48 up 24 min, 5 users, load average: 3.94, 3.68, 2.57 mysql> system ls test.sh sample01.sql teeコマンド 実行結果をターミナルにも表示するがファイルにも保存しておきたい時はteeコマンド。ファイルへの書き出しをやめる時はnotee。ファイルには、プロ
https://github.com/rackerhacker/MySQLTuner-perl MySQLTunerはMySQLのチューニングを診断してくれるアプリケーションです。 基本的なパフォーマンスチューニングのヒントをわかりやすく表示してくれます。 MySQLのチューニング設定に不安な方や、はじめてMySQLをさわる方は試してみると良いでしょう。 ライセンスはGNU GPLで無料で使えます。 検証環境 CentOS 6.3(64bit) MySQL 5.5.28 MySQL 5.5をインストール MySQL 5.5をインストールします。 # wget http://rpms.famillecollet.com/enterprise/remi-release-6.rpm # wget http://ftp.jaist.ac.jp/pub/Linux/Fedora/epel/6/x86
米国で行われているMySQL Connectというイベントで、ついにMySQL 5.6 RC(リリース候補版)が発表された。リリース候補版ということは、これが次の正式版になるということだ。MySQL 5.5は5.1から凄まじい進化を遂げたバージョンであった。だが、MySQL 5.6はさらにそれを上回る進化を遂げている!正直ここまでの進化を誰が予想しただろうか、いや誰も出来なかったであろう。これまで、α版が出たときから何度か新機能について紹介してきたが、今回改めてMySQL 5.6の新機能を振り返ってみようと思う。すべてまとめるともの凄い内容だ。興奮して夜も眠れなくなること請け合いだ。MySQLの進化が止まるのでは?などという心配は吹き飛び、もはやもうちょっと小出しにしなくて良かったのか?と心配してしまうレベルである。 それではMySQL 5.6の新機能について紹介していこう。 InnoDB
GMOさんのところで、ioDrive+MySQLの発表をしてまいりました。 前回のFluentdから中4日で登壇という恐ロシアなスケジュールに真っ白な灰となっております。 1番手だったので基本を抑えつつ尖り気味のところまで入れてしまったせいで、40分のところを53分使い、さらに質疑応答で1時間以上になり、他の発表者や参加者にご迷惑を、そしてピザを冷えさせて申し訳ありませんでした。が、資料自体はぼちぼちな出来になったと思いますのでサクッと公開しておきます。 事前にページを削りとってしまったり、早送りで説明してしまった部分があるので補足したいところなのですが、燃え尽き症候群中なのでMySQL関連は後で少しずつ書いていけたらと思います。 戦利品 Fusion-IO社のサンタクロースと言われる例の方が、登壇者にプレゼントをしてくれました。 ゴルフシャツですが Mサイズ Woman用で、微妙に形が女
出ました。今回は機能の追加・変更が4件、バグ修正が62件あります。 MySQL 5.1.38から同梱されるようになったInnoDB Pluginですが、MySQL 5.1.41ではバージョンが1.0.5に上がり、ついにRC(リリース候補版)となりました。再掲になりますがInnoDB PluginはビルトインのInnoDBに比べて以下のような機能強化が施されており、非常に有用性の高いものです。そろそろ利用を検討しても良い時期に入ってきたのではないかと思います。 高速なインデックス作成。従来InnoDBのCREATE INDEXはテーブルの再作成を伴っていました テーブルとインデックスの圧縮 (検証結果その1、その2) INFORMATION_SCHEMAによるロック競合の検出 (検証結果) CPUスケーラビリティの向上 (1.0.3から) バックグラウンドI/Oスレッドの増加 (1.0.4か
MySQLのRANGEパーティションのお話です。 MySQL5.1からサポートされているパーティショニングですが、ログテーブル等、レコード数が多くなりがちなテーブルに日付でパーティショニングしてます。 最初から遠い未来までのパーティションを切るのは気持ち悪いし、長く運用されるサービスの場合は忘れる可能性もあるのでバッチを回すのがいいと思いますが追加する場合の手順と注意点です。 ・まずはパーティションを作成 CREATE TABLE `mura`.`test1` ( `date` DATE NOT NULL , `name` VARCHAR( 40 ) NOT NULL , `contents` VARCHAR( 255 ) NOT NULL , `created_at` DATETIME NOT NULL ) ENGINE = InnoDB PARTITION BY RANGE (TO_
InnoDBを使おう! もし本稿を読まれている方で、特に明確な意味もなくまだMyISAMストレージエンジンを使ってらっしゃるという方には、全力でInnoDBをオススメしたい。InnoDBには、MyISAMにはない様々な利点があるからだ。 トランザクション対応 InnoDBはACID準拠のトランザクションに対応している。トランザクションの利点は改めて語るまでもないが、DBAの負担を減らしてくれることは間違いない。トランザクションに対応していないストレージエンジンは、集計用の一時的な領域などには良いかも知れないが、文字通りトランザクションを処理するには無理がある。原子性がないということは、処理が失敗したらたちまちデータに不整合が生じるということだし、永続性がないということはOSやマシンのクラッシュ時にはデータが破損する可能性があるということだ。やってできなくはないが、わざわざリスクを抱えてデー
チューニングの基礎 それでは、具体的にInnoDBでどこをチューニングするべきかを見ていこう。 バッファプール 最も基本となるのがバッファサイズの調整だ。ワーキングセットが全てバッファに収まらない限り、バッファプールは大きければ大きいほど良い。その分ディスクアクセスが減るからだ。バッファサイズが小さいと、キャッシュミス時にディスクからReadするのに時間がかかり、I/Oがボトルネックになってしまう。予算のある限りメモリを目いっぱい搭載し、バッファプールに割り当てよう。InnoDBのバッファプールは、innodb_buffer_pool_sizeオプションで設定する。利用可能なメモリは、他の処理に必要な分を除いたすべてをInnoDBのバッファプールに割り当てよう。 innodb_buffer_pool=32G ここで一つ注意がある。innodb_buffer_pool_sizeはバッファプー
久々にMySQL関係でハマりました。原因は mysqldump です。実は数ヶ月前にも同じ現象で悩み、その時は深い調査しないまま対処療法をしてしまいました。今回、やはり技術者たるもの、しっかりと根本原因を追及しなければならないなと反省した次第です。 MySQL 5.0 以降の mysqldump では --opt オプションがデフォルトで有効となっています。これは以下の8つのオプションを一括して指定するオプションです。 --add-drop-table --add-locks --create-options --disable-keys --extended-insert --lock-tables --quick --set-charset この中で --extended-insert オプションがあることにより、レコードをコンマ区切りにして、できるかぎり一括してひとつのINSERT文
いちいさんにお誘いいただいて、勉強会で発表をすることになりました。 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
知らなかったのでメモ。 mysql> SELECT @foo := UNIX_TIMESTAMP(), FROM_UNIXTIME(@foo) +--------------------------+---------------------+ | @foo := UNIX_TIMESTAMP() | FROM_UNIXTIME(@foo) | +--------------------------+---------------------+ | 1331202141 | 2012-03-08 19:22:21 | +--------------------------+---------------------+ @variable := expr で変数に代入し、それをその場で使うことができる。いままでは SET @variable = expr してからしか使えないのかなーと思って
いつでも好きな時間にオラクルの製品や技術について学んでいただけるように、オンデマンドコンテンツをご用意しました。 「自分のペースで学習したい 」「日中のセミナーになかなか参加できない」といった方にお勧めです。日々の学習にお役立てください。 通勤時間を有効活用。 スマホでOracleセミナーを受講しよう! 好評のOTNセミナーオンデマンドをスマートフォンやタブレット端末で視聴することができます。 通勤時間やちょっとした空き時間を有効活用して、スキルアップを目指しましょう。 視聴方法【iPhone編】はこちら 視聴方法【Android編】はこちら Database 基礎 ORACLE MASTER対策 Oracle Database 初心者 Oracle Database DBA 初級 Oracle Database DBA 中級 Oracle Database Developer 中級 Da
初めまして、リコーの濱田です。このたび私も本ブログを担当することになりました。今後ともよろしくお願いいたします。 本エントリではデータベースに関する技術トピックとして、MySQL 5.1 から導入された機能であるパーティショニングについて書こうと思います。少し長くなりそうなので、「基本知識編」「性能検証編」の2回に分けて書くことにします。 今回は「基本知識編」として、パーティショニングの概要と基本的な使い方について紹介します。 パーティショニングの概要 パーティショニングとは、事前に設定されたルールに従ってデータをパーティションと呼ばれる部分的なテーブルに分割する仕組みです。 データ挿入時には、設定ルールに従ってデータが該当するパーティションに自動的に振り分けられます。データ参照時には、オプティマイザがクエリから必要なパーティションを判断し、該当するパーティションのみにアクセスします。これ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く