Jeans & Development:2006年 03月の記事
zlib解凍スピードテスト [プログラミング]
2006年3月30日
PHP の zlib 関数 readgzfile() による表示スピードを計測。非圧縮のファイルの表示速度と比較した。
ファイルとしては、このブログの表ページ(約50kb)を利用。圧縮ファイルは
ファイルの解凍とスピード計測は、
ファイルとしては、このブログの表ページ(約50kb)を利用。圧縮ファイルは
<?php fwrite(fopen('test.doc.gz','w'),gzencode(file_get_contents ('test.doc'),9)); ?>で製作(9の部分は圧縮率で、9で高圧縮、0で圧縮無し)。
ファイルの解凍とスピード計測は、
<?php $before=time()+microtime(); readgzfile('test.doc.gz'); $after=time()+microtime(); echo $after-$before; ?>で行った。
Mod_Rewrite もどき [Linux]
2006年3月27日
現在使用中のプロバイダ、nifty のラクーカンでは、Mod_Rewrite が使用できない。メールで問い合わせてみたが、やはり駄目のようである。
以前使っていたサーバでは、Mod_Rewrite を多用していただけにつらいところである。何か手はないかと探ってみたら、完全ではないものの、一つ解決方法を見つけた。『Redirect』『FilesMatch』なら使えるようなので、これを使用した。
以前使っていたサーバでは、Mod_Rewrite を多用していただけにつらいところである。何か手はないかと探ってみたら、完全ではないものの、一つ解決方法を見つけた。『Redirect』『FilesMatch』なら使えるようなので、これを使用した。
INTERVAL翻訳 [Nucleus/SQLite]
2006年3月20日
ADDDATE(date,INTERVAL expr type) DATE_ADD(date,INTERVAL expr type) , DATE_SUB(date,INTERVAL expr type) SUBDATE(date,INTERVAL expr type)
SHOW FIELDS FROM翻訳 [Nucleus/SQLite]
2006年3月20日
SHOW FIELDS FROM
nucleus_itemの場合
nucleus_itemの場合
CREATE TABLE `nucleus_item` ( `inumber` int(11) NOT NULL auto_increment, `ititle` varchar(160) default NULL, `ibody` text NOT NULL, `imore` text, `iblog` int(11) NOT NULL default '0', `iauthor` int(11) NOT NULL default '0', `itime` datetime NOT NULL default '0000-00-00 00:00:00', `iclosed` tinyint(2) NOT NULL default '0', `idraft` tinyint(2) NOT NULL default '0', `ikarmapos` int(11) NOT NULL default '0', `icat` int(11) default NULL, `ikarmaneg` int(11) NOT NULL default '0', PRIMARY KEY (`inumber`), UNIQUE KEY `inumber` (`inumber`), KEY `itime` (`itime`), FULLTEXT KEY `ibody` (`ibody`,`ititle`,`imore`) ) TYPE=MyISAM PACK_KEYS=0;
SHOW KEYS FROM 翻訳 [Nucleus/SQLite]
2006年3月19日
kosugiatkipsさんに教わった命令で、MySQL の『SHOW KEYS FROM』に相当する部分が見えてきた。キー(インデックス)の作成は、SQLiteでは、
のようにすればよい。この書式をテーブルから読み出すには、
で良いらしい。実行結果の例は、次の通り。
CREATE INDEX 'ibody' ON 'nucleus_item' ('ibody','ititle','imore')");
のようにすればよい。この書式をテーブルから読み出すには、
$res=sqlite_mysql_query("SELECT sql,name FROM sqlite_master WHERE type = 'index' and tbl_name = 'nucleus_item' ORDER BY type DESC"); while ($a=sqlite_mysql_fetch_assoc($res)) foreach($a as $key=>$value) echo "$key=>$value</br>\n";
で良いらしい。実行結果の例は、次の通り。
sql=>CREATE INDEX 'itime' ON 'nucleus_item' ('itime') name=>'itime' sql=>CREATE UNIQUE INDEX 'inumber' ON 'nucleus_item' ('inumber') name=>'inumber' sql=>CREATE INDEX 'ibody' ON 'nucleus_item' ('ibody','ititle','imore') name=>'ibody' sql=> name=>(nucleus_item autoindex 1)
PostgreSQL [Nucleus/SQLite]
2006年3月17日
戯れに、PostgreSQLでもラッパーが作れそうかどうか、調べてみた。一番のポイントは、SQL Query中で使えるユーザ関数が定義できるかどうかである。
NOT NULL の問題 [Nucleus/SQLite]
2006年3月17日
MySQL で "NOT NULL" のカラムに NULL を指定してデータを挿入しようとすると、『MySQL ではエラーを生成するのではなく、カラムを '最適可能値' に設定』するらしい。SQLiteではエラーになる。でもこの MySQL の仕様、バグの温床にならないのかな?
(追記)SQLiteのバージョンによって違うのか、コンパイルオプション或いは、設定によって違うのか、ここのラクーカンのSQLiteではエラーが出なかった(ローカルのコンピューターにインストールしたSQLiteではエラー)。
(追記)SQLiteのバージョンによって違うのか、コンパイルオプション或いは、設定によって違うのか、ここのラクーカンのSQLiteではエラーが出なかった(ローカルのコンピューターにインストールしたSQLiteではエラー)。