<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
		xmlns:xhtml="http://www.w3.org/1999/xhtml"
>

<channel>
	<title>KUMALOG &#187; PHP</title>
	<atom:link href="http://kumalog.com/category/php/feed/" rel="self" type="application/rss+xml" />
	<link>http://kumalog.com</link>
	<description>ニッチなニュース、PC・インターネット関連、食など、気になったものをピックアップし、感想と共に紹介。</description>
	<lastBuildDate>Mon, 24 Oct 2011 11:51:05 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=</generator>
<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://kumalog.com/category/php/feed/" />
<xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" />
		<item>
		<title>トランザクションを使ってSQLiteの処理を超高速化</title>
		<link>http://kumalog.com/2008/05/04210652.php</link>
		<comments>http://kumalog.com/2008/05/04210652.php#comments</comments>
		<pubDate>Sun, 04 May 2008 21:06:52 +0000</pubDate>
		<dc:creator>ヨシダ</dc:creator>
				<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://morita.afstyle.net//wp/?p=240</guid>
		<description><![CDATA[トランザクションを使うと、SQLiteの処理を劇的に高速化することができます。トランザクションを使った場合と使わない場合の実行時間の比較もやってみました。]]></description>
			<content:encoded><![CDATA[<p>諸事情で70万弱のデータをデータベース（SQLite3）に格納することがあったのですが、処理が長引きすぎてサーバ側で強制終了。</p>
<p>マニュアルを読んで見つけた「トランザクション」を使ってみると、処理速度が劇的に向上。そして、数秒のうちに格納完了。あまりの早さにビックリしたので、スクリプト実行時間を計測して比較してみました。</p>
<p><span id="more-240"></span></p>
<p>データベースの操作はPDOで行いました（PDOしか使ったことがない）。<br />
<strong><a href="http://jp.php.net/manual/ja/book.pdo.php" target="_blank">PHP: PDO &#45; Manual</a></strong></p>
<h2>比較した2つのスクリプト</h2>
<h3>サンプルスクリプト1（トランザクション不使用）</h3>
<p>同じSQL文を100回実行するスクリプト。データベースへのパスは適当。</p>
<pre class="brush:php">//開始
$start = microtime(true);

//データベースへの接続
$db = new PDO('sqlite:./test.db');

//レコードの追加
$sql = "insert into test (data) values ('123456789');";
for($a=0;$a&lt;100;$a++){
  $db-&gt;query($sql);
}

//終了
$end = microtime(true);

//実行時間の算出
$time = ($end - $start) * 1000;
echo $time.'ミリ秒';</pre>
<h3>サンプルスクリプト2（トランザクション使用）</h3>
<p>サンプルスクリプト1に「トランザクションの開始」と「コミット」を追加しただけ。</p>
<pre class="brush:php">//開始
$start = microtime(true);

//データベースへの接続
$db = new PDO('sqlite:./test.db');

//トランザクションの開始
$db-&gt;beginTransaction();

//レコードの追加
$sql = "insert into test (data) values ('123456789');";
for($a=0;$a&lt;100;$a++){
  $db-&gt;query($sql);
}

//コミット
$db-&gt;commit();

//終了
$end = microtime(true);

//実行時間の算出
$time = ($end - $start) * 1000;
echo $time.'ミリ秒';</pre>
<h2>比較した結果</h2>
<p>それぞれ3回ずつ実行し、平均の実行時間で比較してみました。</p>
<table>
<tr>
<td style="width:40%;">トランザクション不使用</td>
<td>727.94ミリ秒</td>
</tr>
<tr>
<td style="width:40%;">トランザクション使用</td>
<td>20.29ミリ秒</td>
</tr>
</table>
<p>比較方法には問題があると思うけど、トランザクションを使った方が明らかに早い。不使用の35倍の早さですからね･･･圧倒的です。件数が多くなるほど、この差が開きそうだ。</p>
]]></content:encoded>
			<wfw:commentRss>http://kumalog.com/2008/05/04210652.php/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://kumalog.com/2008/05/04210652.php" />
	</item>
		<item>
		<title>SQLite管理ツール『SQLiteManager』のインストール</title>
		<link>http://kumalog.com/2008/03/14155957.php</link>
		<comments>http://kumalog.com/2008/03/14155957.php#comments</comments>
		<pubDate>Fri, 14 Mar 2008 15:59:57 +0000</pubDate>
		<dc:creator>ヨシダ</dc:creator>
				<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://morita.afstyle.net//wp/?p=113</guid>
		<description><![CDATA[SQLite管理ツール『SQLiteManager』をインストールした。]]></description>
			<content:encoded><![CDATA[<p><img src="http://kumalog.com/wp-content/uploads/old/080314.png" alt="SQLite管理ツール『SQLiteManager』" /></p>
<p>PHPとSQLiteを使って、何か作ってみたかったのでXREAサーバーに『SQLiteManager』をインストールした。</p>
<p>インストール作業は問題なく進んだけど、データベース作成で少し詰まってしまった。試行錯誤の結果、なんとか解決。</p>
<p><span id="more-113"></span></p>
<p>以下のページを参考にさせていただきました。PHPのテクメモさま、ありがとうございます。</p>
<p><a href="http://php.atseason.com/?p=818" target="_blank">PHPのテクメモ » Blog Archive » SQLite Managerを試す</a><br />
<a href="http://php.atseason.com/?p=819" target="_blank">PHPのテクメモ » Blog Archive » SQLiteの文字コード</a></p>
<p>インストール手順は最初のリンク先にわかりやすくまとめられています。UTF-8でSQLiteManagerを使いたい方は、下段のリンク先を参考にしてUTF-8に対応させてください。</p>
]]></content:encoded>
			<wfw:commentRss>http://kumalog.com/2008/03/14155957.php/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://kumalog.com/2008/03/14155957.php" />
	</item>
		<item>
		<title>XREAにConveyorを入れてみた</title>
		<link>http://kumalog.com/2008/03/12154431.php</link>
		<comments>http://kumalog.com/2008/03/12154431.php#comments</comments>
		<pubDate>Wed, 12 Mar 2008 15:44:31 +0000</pubDate>
		<dc:creator>ヨシダ</dc:creator>
				<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://morita.afstyle.net//wp/?p=111</guid>
		<description><![CDATA[PHP版Plaggerなる「Conveyor（旧PRhagger）」をXREAサーバにインストールしてみた。]]></description>
			<content:encoded><![CDATA[<p><img src="http://kumalog.com/wp-content/uploads/old/080312.gif" alt="PHP版Plagger「Conveyor」" /></p>
<p>なんだか、RSSフィードやウェブページから情報を収集・加工したりする「<a href="http://ja.wikipedia.org/wiki/Plagger" target="_blank">Plagger</a>」がアツいようです。ものすごく便利そうなので、使ってみようと思ったのですが、コレPerlじゃん！Perlは全くわからん！</p>
<p>がっくりしながらも情報収集を続けていると、PHP版Plaggerなる「Conveyor（旧PRhagger）」を発見。即、導入決定。</p>
<p>罠にハマりながらも、なんとかインストールに成功したので、備忘録も兼ねてこのエントリーに書き残しておくことにします。</p>
<p><span id="more-111"></span></p>
<p>以下、XREAのレンタルサーバにインストールする際の話です。まぁ、サーバが違っても、することは同じだと思いますが。</p>
<h2>準備</h2>
<p>まずは必要なファイルをダウンロードしておきましょう。解凍もしてね。</p>
<h3>PHPフレームワーク「rhaco」</h3>
<p><a href="http://rhaco.org/" target="_blank">rhaco-ja</a></p>
<h3>rhacoをベースに動く「Conveyor」</h3>
<p><a href="http://conveyor.rhaco-users.jp/" target="_blank">Conveyor</a></p>
<h2>rhacoのインストール</h2>
<p>rhacoをフォルダごとを好きな場所にアップロードするだけ。私はpublic_htmlにアップロード。</p>
<h2>Conveyorのインストール</h2>
<h3>まずはアップロード</h3>
<p>conveyorもフォルダごと好きな場所にアップロード。パーミッションを変更しないと、次の段階で怒られます。私はよく分からなかったので、「777」にした。セキュリティの問題はよく分からん＾＾；</p>
<h3>setup.phpで設定</h3>
<p>conveyor内のsetup.phpをブラウザで開いて、各種設定。「rhaco.php」のパスを聞かれるので、教えてあげて。私の場合は「/virtual/ユーザー名/public_html/rhaco/」。</p>
<p>次のページに進むと、入力項目がたっぷりで嫌な雰囲気ですが、ほとんどノータッチでOK。･･･あ、「全体＞パスワード」は設定しておきましょう。setup.phpにアクセスすれば、誰でも設定変更できるみたいなので。</p>
<p>私は「パス＞アプリケーションのルートパス」がURL表記になっていたので書き換えました。書き換える必要はあったのかな？</p>
<p>「キャッシュ＞テンプレートをキャッシュする」「キャッシュ＞feedをキャッシュする」はご自由に。</p>
<p>最後に「生成する」をクリックして設定完了。</p>
<h3>PHPがセーフモードで稼働している場合</h3>
<p>セーフモードがONの場合は、PHPをCGIモードで動かさないといけないようなので、以下のように記述した.htaccessをconveyorディレクトリに置いてください。CGIモードで動かさないと、後々ハマりますよ。</p>
<pre><code>AddHandler application/x-httpd-phpcgi .php</code></pre>
<p>再びsetup.phpで設定変更する場合は、.htaccessを一旦削除してCGIモードを解除してください。</p>
<p>これで、インストールは完了です。conveyorディレクトリ内のindex.phpにアクセスして、Conveyorを楽しんでください。「All workers」タブで全てのworkerをインストールしておいたほうがいいかも。</p>
<p>その後は･･･ <a href="http://d.hatena.ne.jp/shigepon/20070803" target="_blank">http://d.hatena.ne.jp/shigepon/20070803</a> なんかを参考にしてください。</p>
]]></content:encoded>
			<wfw:commentRss>http://kumalog.com/2008/03/12154431.php/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://kumalog.com/2008/03/12154431.php" />
	</item>
	</channel>
</rss>

