Category Archives: DB

DQL; DynamoDBをSQLライクに扱う

AWS DynamoDBは素晴らしいんですが、WEBインターフェースが結構使いにくい、、ので、SQLっぽく操作できるこちらです。

https://github.com/stevearc/dql

これが早速Pythonだったりしてw
python2.7.11で動きました。

DQLを使ってDynamoDBをSQL操作する

SELECT 文に SAVE オプションを渡すと、ファイル出力できます。

とのこと。

> eu-central-1> SELECT * FROM Movies SAVE Movies.json;
> Saved 1 record to Movies.json

これは便利。

mysqliライブラリがインストールできない

mysqliライブラリがインストールできない!

CentOSなどで、

# yum install php55-mysqli

しても、php55-mysqliなパッケージが見つからない!
と思っていたら、パッケージ名が変わっていたのでした。

# yum install php55-mysqlnd

でインストールできます。

Zend_Db_Table_AbstractでZend_Cacheを利用して負荷軽減

オデの日記@WEB系: Zend_Db_Table_AbstractでZend_Cacheを利用して負荷軽減

で、このZend_Db_Tableですが、生成する度にdiscribetable()というメソッドが呼ばれテーブル情報を取得します。とても便利なのですが、都度DB接続が行われ非効率すぎるのでZend_Cacheを利用してデータをキャッシュさせておきます。
discribeTable()が走るタイミングは
・insert()
・find()
・info()
を呼んだ時だそうです。

というわけでキャッシュを組み込みましょう。

[php]
$frontendOptions = array(
‘automatic_serialization’ => true
);
$backendOptions = array(
‘cache_dir’ => TMP_PATH
);

$cache = Zend_Cache::factory(
‘Core’,
‘File’,
$frontendOptions,
$backendOptions
);
Zend_Db_Table_Abstract::setDefaultMetadataCache($cache);
[/php]

さくらインターネットで MySQL のバージョンを 4 から 5 に移行

さくらインターネットで MySQL のバージョンを 4 から 5 に移行 – 転校生@Hatena

もう、まんま↑で私もMySQL4からMySQL5に移行しました。元々のデータがUTF-8で、mysqldump4をした際に出力されたSQLのエンコードがかな~り怪しかったですが、特に問題なくインポートできましたヨ。(たぶん)
かなりドキドキしましたが(^-^;

はてな流大規模データ処理

KOF 2008 の発表資料 – naoyaのはてなダイアリー

はてな流大規模データ処理の発表資料を見てたら、データベースのパーティショニングを前提とした設計、というのが載っていて興味を引きました。

普通にテーブルが分かれている場合、JOINを使って、

mysql> select url from entry INNER JOIN bookmark on entry.eid = bookmark.eid
-> where bookmark.uid = 169848 limit 5;

こんな感じでSQL文を発行しますが、テーブルがパーティショニングで分けられている場合、

mysql> select eid from bookmark where uid = 169848 limit 5;
+—–+
| eid |
+—–+
| 0 |
| 4 |
| 5 |
| 6 |
| 7 |
+—–+
5 rows in set (0.01 sec)

mysql> select url from entry where eid in (0, 4, 5, 6, 7);

こう、JOINせずに求めるという・・・。力業ですね(^_^;)
まだパーティショニングしたことないですが、こうなりますよねー。やはり。

php_sennaとは

php_sennaとは – Senna (非公式) PHPバインディング

php上からSennaを直接扱えるエクステンション、php_senna。

upd(‘key1’, NULL, ‘This is a sample.’);
$index->upd(‘key2’, NULL, ‘This is an another.’);
$index->update(‘key3’, 1, NULL, ‘php_senna sample’);
$index->update(‘key3’, 2, NULL, ‘binding’);
$index->update(‘key3’, 3, NULL, ‘sample code’);

$records = $index->query(‘sample’);
foreach ($records as $row) {
echo $row->getKey(), ‘ = ‘, $row->getScore(), “\n”;
}

Tritonなどを入れなくても、こんな感じでSennaを使えるらしいのです。
これは素晴らしいですね。

DataGrid for Zend Framework

CakePHP のおいしい食べ方: Zend FrameworkでCRUD

Zend FrameworkでやるDataGrid的な何か。

PDF
Office 2003
Offiee 2007
Excel
XML
CSV
OpenOffice spreadsheet
OpenOffice Document text
などの形式で出力できるそうです。Datagridより、こちらのほうに心ひかれてしまいました。

確かに心惹かれます!

ZendFramework SQL Debug View Helper

ZendFramework SQL Debug View Helper | ヲゾゾ wozozo blog

cakeとかsymfonyには画面下にSQLログみたいなのが表示されてる。これzfにも欲しい。

とのことで、Zend Framework用のを作られています。カコイイ!
cakeとかsymfonyはそんなのがあるんですねぇ。触ってみないとですね。

ZendでSQLのログを出力

ZendでSQLのログを出力する | mono-blog

Zend_Dbにprofilerが付いているので、それを使って最後に使ったクエリーをログに書き出す、といったことをやられています。
これは便利ですね。

Profilerもあったのは覚えてても、こういう具体的な使い方は思いつかない・・(^_^;)
でも、これでもう忘れません!たぶん!活用します!

O/Rマッピング関係の用語

ブログなんだよもん – O/Rマッピング関係の用語
PHPとは直接関係ありませんが、O/Rマッピング関係の用語の勉強ということで。確かにDAOとかよくわからなかったお。