YAPC::Asiaのスライドで予告していた通り、実際に弊社のいくつかのサービスで使っている my.cnf を公開しました。 github: https://github.com/kazeburo/mysetup/tree/master/mysql 今回、公開した理由はMySQl Beginners Talksの発表の中でも触れている通りです。MySQLのソースコード中に含まれるサンプルのmy.cnfが最近のサーバハードウェアや運用に合わなくなって来ているという状況で、自分の設定にイマイチ自信が持てていない人は少なくないはず。そこで各社秘伝のタレ的な my.cnf をOpen & Shareすることで、モダンなmy.cnfを作り上げる事ができるんじゃないかという考えの下、今回 github にて公開しました。 ファイルは4つあり、それぞれ MySQL 4.0、5.1、5.5、そしてテスト中
MySQL Performance Tuning Primer Script This script takes information from "SHOW STATUS LIKE..." and "SHOW VARIABLES LIKE..." to produce sane recomendations for tuning server variables. It is compatable with all versions of MySQL 3.23 and higher (including 5.1). Currently it handles recomendations for the following: Slow Query Log Max Connections Worker Threads Key Buffer Query Cache Sort Buffer Jo
弊社の一部のサービスでも絶賛活躍中のFusion-io社のioDrive。 Fusion-io ioDriveとFusion-io ioDrive Duoではどちらも、最小容量のモデルはSLC型、そのほかはMLC型を使っているが、Fusion ioDriveの読み込み速度は735〜770MB/s、書き込み速度は510〜750MB/sだ。Fusion ioDrive Duoに至っては、読み込み速度は1.0〜1.5GB/s、書き込み速度は一律1.5GB/sという数値をたたき出す。 @IT Special PR:Fusion-ioのクールな技術を使いこなせ! 今日はデルさん主催の下記セミナーにて、このFusion-ioに関するDELL社の検証結果紹介や、DeNA松信さんによるMySQL環境でのFusion-io検証結果およびDeNAでの利用に関するお話が聞けるとのことだったので、途中からの参加で
誰の口から飛び出したのかは定かではないが、巷ではMySQLにまつわる様々な「都市伝説」がまことしやかに囁かれているようだ。恐らくMySQLに対する理解が低い人や、MySQLがあまり好きではない面々によってFUDっぽく言われているのだと思うが、世の中にはそのような「都市伝説」を真に受けてしまう人が居るのもまた事実であである。MySQLにおける昨今の開発スピードには目覚ましいものがあり、MySQLは性能・安定性・使い易さ共に進化し続けている。(特に先日リリースされたMySQL 5.5は性能・安定性・使い易さを両立している優れたバージョンだ!!)しかし「都市伝説」で語られることは総じて「MySQLはダメな子ちゃん」であるという烙印を押すものばかりであり、MySQLerとしてはそのような言われ無き汚名を全身全霊をもって晴らさなければならない使命を背負っている。そこで、今日はMySQLについて語られ
MySQLのクエリキャッシュ機能ですが、SELECT文の内容によってはquery_cache_XXX変数の値に依らず無条件に結果がキャッシュされませんよね。 ではどんなキーワードを含んでいるとキャッシュされないのでしょうか。sql_yacc.yyとlex.hで確認してみました。 SQL_NO_CAHCE FOR UPDATE LOCK IN SHARE MODE CURRENT_DATE CURDATE CURRENT_TIME CURRENT_TIMESTAMP CURTIME CURRENT_USER DATABASE DATABASES LAST_INSERT_ID MASTER_POS_WAIT NOW ROW_COUNT SYSDATE UNIX_TIMESTAMP USER UTC_DATE UTC_TIME UTC_TIMESTAMP (ユーザ定義関数) (ストアドプロシージ
PowerDNS on RailsはRuby on Rails製のフリーウェア(ソースコードは公開されている)。DNSを管理するソフトウェアとして有名なものと言えばBINDが有名だ。だがセキュリティ上の問題や管理の複雑さもあって、最近では別なソフトウェアが選ばれるケースも増えている。その一つの選択肢がPowerDNSだ。 DNS管理をRailsで PowerDNSの最大の特徴はバックエンドの管理システムにRDBMSを利用できる点だろう。PostgreSQLやMySQLにも対応している。そしてもう一つの特徴はフロントエンドの管理システムが存在しないことだ。そのためユーザはデータベースを管理するシステムとして自由にフロントエンドを選択できる。その一つがPowerDNS on Railsだ。 PowerDNS on Railsはその名の通り、PowerDNSを管理するためのRailsによるフロン
HeidiSQLはWindows向けのオープンソース・ソフトウェア。MySQLの管理インタフェースとしてphpMyAdminを使うケースは多い。確かに外部のデータベースを使うなら便利だ。だが社内やローカルのデータベースを使う場合はローカルアプリケーションの方が便利ではないだろうか。 高性能MySQLフロントエンド GUIのMySQL管理ソフトウェアも幾つかあるが、WindowsであればHeidiSQLが便利そうだ。特に設定をレジストリファイルとして出力して、他のHeidiSQLで読み込ませられるのが良い。社内で複数人で使う際にも一つ一つ設定する手間が省けるのだ。 HeidiSQLからデータベースを選択してテーブルの内容を見られるのはもちろん、データを編集してアップデートすることもできる。テーブルの構造を変更したり、インデックスを追加することも可能だ。任意のクエリーを実行、データのエクスポー
いつも「MySQLを使うときはこうするべき」という観点から記事を書いているが、今日は逆に犯してはいけない過ちをリストアップしようと思う。 1. 全てのカラムにインデックスをつけるデータベース初心者がもっともやってしまいがちな間違いはコレではないだろうか。インデックスはいい。検索がとても速くなるから。しかし、それと引き替えにインデックスは更新するときにコストがかかるし、その分多くのディスクスペースを消費する。特に更新にかかるコストは時に甚大で、該当するインデックスのページがキャッシュ上にない場合はディスクからいったんそのページを読み込まなければいけない。ディスクアクセスは動作にとても時間がかかるので、インデックスが多数、例えば全てのカラムに付いていたりすると「あれ?固まったか?」というような状態になってしまうことがあるだろう。インデックスは必要なカラムにだけつけるようにテーブルを設計しよう。
ヤフー株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。LINEヤフー Tech Blog こんにちは、オークション事業部のWangです。 データウェアハウス(以下DWH)という言葉になじみのない方は検索していただいたほうがよいかもしれません。 検索するのがめんどい、という方は、かみ砕いた表現ができなくて恐縮ですが、 基幹系システムから抽出したデータを目的をもって再構成し、 使用可能な状態に保管されたデータの集合体、とお考えください。 オークションでは、具体的には出品、入札、落札などのトランザクションデータや、 それをいろいろな単位で集計したデータなどが該当します。 ここでいう単位というのはたとえば、日ごと、週ごと、月ごとや、以前の記事でも紹介されている カテゴリといったものになります。 こういったデータは、運用、運営、
MySQL 5.1からデフォルトで有効になっている便利な機能としてプロファイリングというものがある。MySQL 5.0でも利用出来たのだが、実験的な機能という位置づけであり、搭載されていたのはGPL版のMySQL Community Server限定だった。MySQL 5.1からは全てのエディションでプロファイリングを利用することができる。 プロファイリング機能を利用すると、クエリの状態(特に状態遷移やリソースの消費状況)を詳細に分析できるのでとても便利だ。MySQLエンジニア必携の機能といって良いだろう。というわけでプロファイリング機能の使い方を説明しよう。 MySQLサーバにログインしたら、まずは次のようにしてプロファイリングを有効にする。 mysql> SET profiling=1; すると、クエリの情報が記録されるようになる。次に、分析したいクエリを実行する。クエリはなんでもいい
スレッド パッケージよく統合されているため、MySQL の使用に FreeBSD 4.x あるいはそれ以降の使用をお勧めします。セキュアで安定してシステムにするには、-RELEASE の印の付いた FreeBSD kernel のみを使用します。 MySQL のインストールで最も容易(で推奨される)な方法は mysql-server ポートおよび mysql-client ポートを使用することです。それらは http://www.freebsd.org/ で入手できます。これらのポート使用することで以下のメリットがあります。 FreeBSD バージョンで動作することが知られているすべての最適化を行った MySQL 自動設定およびビルド /usr/local/etc/rc.d にインストールされた自動スクリプト どのファイルがインストールされているかを確認するための pkg_info -L
Last September, I wrote entry that became quite popular. In FreeBSD or Linux for your MySQL Server? I detailed some of the reasons that led me to recommend Linux over FreeBSD for MySQL servers at Yahoo. You may have also noticed my Solved: MySQL, FreeBSD, and LinuxThreads post back in October. Many people have e-mailed me recently to ask if the old posting is still accurate. A lot has changed sinc
MySQLでレプリケーションの設定をした場合、バイナリログが /var/db/mysqlに貯まっていきます。 MySQLのバイナリログは、デフォルトでは、自動的に削除されません。 そのため、どんどん溜まっていきます。いつの間にか、バイナリログに よって、ストレージが溢れることもあります。 そしたらサービス不能ですよ! 気をつけましょう。気をつけなければなりません。 そこでMySQLのバイナリログを自動的に削除する設定ですが サーバパラメータの expire_logs_daysを設定します。 システム変数 expire_log_days は、デフォルトでは 0 で、バイナリログは自動的には 削除されません。 expire_log_daysにはバイナリログの自動削除の日数を指定します。 デフォルトは、 0 で 「自動削除しない」ということを意味します。 MySQLサーバの起動時か、ログをローテ
MySQLでは、簡単にレプリケーションを利用することができます。 レプリケーションすることで データのバックアップ 負荷分散 ができて、幸せになります。 マスター側の設定 MySQLの設定ファイルを編集します。 バイナリログをMySQLに書かせる必要があります。 sudo vim /etc/my.cnf log-bin=mysql-bin server-id=1 レプリケーション用アカウントを作成します。 mysql -u root -p GRANT REPLICATION SLAVE ON *.* TO 'repl'@'192.168.0.12' IDENTIFIED BY 'slavepass'; mysqldを再起動すると sudo /usr/local/etc/rc.d/mysql-server restart sudo ls /var/db/mysql にバイナリログのファイルが
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く