2010-08-01から1ヶ月間の記事一覧

CentOS 5.2にautomake 1.11.1をインストール

yumでインストールされたautomakeを上書き。 wget --passive-ftp ftp://ftp.gnu.org/gnu/automake/automake-1.11.1.tar.gz tar -zxvf automake-1.11.1.tar.gz cd automake-1.11.1 ./configure --prefix=/usr make make install cd ..

CentOS 5.2にautoconf 2.6.7をインストール

autoconfはm4に依存するのでまずはm4の最新版をインストール。yumでインストールしたautoconfに上書きインストールする。 cd /usr/local/src wget ftp://ftp.gnu.org/gnu/autoconf/autoconf-2.67.tar.gz tar zxvf autoconf-2.67.tar.gz cd autoconf-2.67 ./c…

CentOS 5.2でMySQL 5.1を最新レポジトリのソースから入れてみる

こちらの書籍を参考にP489を参考にまずはレポジトリ管理ソフト bazaarを入れる。併せてこちらも読んでおく開発ソースツリーからのインストール mysql 5.1の最新レポジトリをダウンロード cd /usr/local/src mkdir mysql-server bzr init-repo --trees mysql-…

MySQLでありがちなこと その1 ORDER BY RAND()

ガチャやルーレットで、ランダムにアイテムを選択...という時に以下のようなSQLでクールに一発で決めるぜ!!としてしまいがちなのですが、大規模サービスでこれをやるとちょっとヤバイです。 SELECT * FROM gacha ORDER BY RAND() LIMIT 1 自分もMySQLのマ…

CentOSにmongodbをインストールしてみる with php

NoSQLのmongodbをインストールしてみる。 特徴 AGPL Javascriptライクな操作 ホームページ http://www.mongodb.org/

PHP 5.3.3にswfed 0.20をインストールする

phpでフラッシュファイルのリソースを動的にリプレースを行えるextension swfedをPHP5.3.3にインストールしてみる。作者のよやさんによるとPHP5.3にて動作確認済みということです。せっかくなので、最新版のswfed-2.0を入れてみます。 PHP 5.3.0 で動作実験

MySQL InnoDBだけで全文検索 を試してみる

sh2さんの人気エントリーMySQL InnoDBだけで全文検索で実運用環境で導入を検討したときのメモなどを紹介します。上記記事と合わせて何かの参考になれば幸いです。 sh2さんの記事では実験エントリーなので、インデックス作成用のトリガーを設定してから初期デ…

DBセッションでのデバックに使う関数や設定変数アレコレ まとめ

まず最初に紹介するのがコレ、現在のDBのセッションに割り当てられた接続IDを取得するCONNECTION_ID()関数。一意なテンポラリーテーブル名に使われたりします。使い方としてはアプリケーション側で、作成した筈のテンポラリーテーブルやユーザ変数にアクセス…

KLab×はてな エンジニア応援ブログコンテスト入賞作品発表を受けて

最近は、すっかりMySQLのTIPブログと化してしまっていますが、このブログの当初の目的は『KLab×はてな エンジニア応援ブログコンテスト』に入賞して『KLab採用 最終選考パス券』ゲットすることでした。発表が大分遅れてコンテストはなかったことになっている…

PHP 5.3でMySQL Native Driverを使用する方法

PHP 5.3でMySQL Native Driverに対応となったのですが、configureで指定しないと有効にならないので以下メモ ./configure \ --with-mysql=/usr/local/mysql \ --with-mysqli=/usr/local/mysql/bin/mysql_config \ --with-pdo-mysql=/usr/local/mysql ./confi…

Cent OS 5.2 にImageMagick最新版をインストール

Cent OS 5.2 にImageMagick最新版をインストールしたときに手こずったので、備忘録も兼ねて作業メモを書きました。 # インストールに必要なパッケージをインストール yum install -y libtiff-devel yum install -y giflib-devel yum install -y perl yum ins…

php5.3をインストールする時の注意点

PHP 5.3はそんなに変わらないだろうとタカをくくっていたら、地雷を踏んだのでメモ。まぁ個人ブログなので問題なし。 Assigning the return value of new by reference is deprecated WordPressの場合以下のファイルを書き換える wp-settings.php

MySQLでマテリアライズドビュー10 実装編 定期更新(cron編)

MySQLのイベントスケジューラーがいつも使えるとは限らないので、cronでの定期更新の方法を記載しておきます。イベントスケジューラーより簡単ですね。 アクセス集計マテリアライズ化 # 毎日0時に実行 0 0 * * * /bin/sh echo "call access_daily_materializ…

MySQLでマテリアライズドビュー9 実装編 参照更新(on demand)

Oracleのマテリアライズドビューのパターンにない方法として、SELECT文実行前にマテリアライズドビューを更新するという方法がある。このパターンはon demandの一種でマテリアライズド・ビューの更新が滞っていると、参照までに時間が掛かるという弱点はある…

MySQLでSELECTトリガー

MySQLではINSERT、UPDATE、 DELETEとトリガーが実装されていますが、SELECTのトリガーは実装されていません。というかSELECTトリガーってなんだよっ!Oracleあたりにはありそうですが、RDBMSでSELECTトリガーなんて言うものは僕も聞いたことありません。そも…

MySQLでマテリアライズドビュー8 集計クエリー実装編 定期更新(start with句・next句)

昨日の集計を行うように修正 DROP PROCEDURE access_daily_materialized_insert; delimiter // CREATE PROCEDURE access_daily_materialized_insert() begin replace into mv_access_daily (access_date,access_daily_num) select date_sub( curdate() , INT…

MySQLでマテリアライズドビュー7 集計クエリー実装編 手動更新(on demand)

トリガーを除去 DROP TRIGGER IF EXISTS `access_daily_materialized_insert` 本日分の集計を更新するreplace文を書く*1 REPLACE INTO mv_access_daily (access_date,access_daily_num) SELECT CURDATE() , count(access_id) FROM access WHERE CURDATE()=DA…

MySQLでマテリアライズドビュー6 集計クエリー実装編 即時反映(on commit)

集計クエリーでのマテリアライズド・ビューは実装が異なって来るので今回はこちらを実装してみましょう。例として非常にシンプルなアクセスログ集計を考えます。

MySQLでマテリアライズドビュー5 実装編 定期更新(start with句・next句)

前回のエントリーで作成した、ストアドプロシージャをMySQLのイベントスケジューラーに登録して実行してみます。 1時間に1回実行する CREATE EVENT e_comment_materialized_insert_hourly ON SCHEDULE EVERY 1 HOUR COMMENT 'updated materialized view each…

MySQLでマテリアライズドビュー4 実装編 手動更新(on demand)

さて、前回のMySQLでマテリアライズドビュー3 on commitのエントリーにてマテリアライズド・ビューの一般的な形は紹介しました。先の例は高速化という意味では成功でした。ですが、世の中何事も等価交換(トレードオフ)です。参照の高速化の見返りとして、デ…

MySQL TIPS 6 ストアドプロシージャで指定した数のダミーデータを用意する3

ユーザ変数の文字列バッファ操作に時間が掛かっているので、一旦テンポラリーテーブルに格納してからgroup_concatでまとめて結合という手段を取ってみた。phpで言うところの配列(array)に格納しておいて、あとでimplodeでまとめて結合するというテクニックで…

MySQL TIPS 5 ストアドプロシージャで指定した数のダミーデータを用意する2 (失敗編)

以前のエントリーで作ったinsert_generate_seriesを複数INSERT,複数カラムで生成データを使用可能にしてみる