新規記事の投稿を行うことで、非表示にすることが可能です。
SQLiteのすすめ、チューニングのポイント
SQL ServerやMySQL、MariaDBなどサーバー型データベースでは必然的なチューニングですね。SQLiteもチューニングが必要になります。
チューニングのポイントを探る上で最も重要なポイントは、↓これです
これがわからないとチューニングの指針が定まりませんね
個人的にSQLiteをよく利用する言語はPHPです。PHPで時間計測は以下のようにします。
要件を満たしているなら遅くてもチューニング不要だと思います。
ただ運用後、登録データ数が増えるテーブルは、遅くなる場合が多いのである程度のチューニングは必要かもしれません。
チューニングのポ・・・・・
チューニングのポイントを探る上で最も重要なポイントは、↓これです
- SQL発行、処理時間等、正確な時間を測定。必要があれば記録を残し、比較する
これがわからないとチューニングの指針が定まりませんね
個人的にSQLiteをよく利用する言語はPHPです。PHPで時間計測は以下のようにします。
$start = microtime(true);
SQL発行処理();
echo number_format( microtime(true) - $start, 4 ) . PHP_EOL;
- マイクロ秒で測定できます。(マイクロ秒は、ミリ秒の1/1000です)
- マイクロ秒の現在時刻から記録した処理前時間を引くことで求められます。
要件を満たしているなら遅くてもチューニング不要だと思います。
ただ運用後、登録データ数が増えるテーブルは、遅くなる場合が多いのである程度のチューニングは必要かもしれません。
チューニングのポ・・・・・
【PHP】try-lockを簡易実装する一つの方法
一つしかない資源(リソース)へ同時に更新、書き込みが発生する事態は極力避けたいです。FastCGI(nginxやapache)で動作させるPHPでは、同時間に複数のアクセスがあったりするので、一つのリソースに対する排他制御が必要になることがあります。
C#のような言語では、lockステートメントやMonitor.TryEnterなどを利用することで実現できます。PHPではこのようなステートメントや高級な仕組みが用意されていません。
PHP でもコンパイル指定次第でセマフォ(sem_get 、sem_acquire)やMutexが使えます。レンタルサーバー上にあるPHPでは利用できないことが多いですね
セマフォはサーバー上資源を利用する仕組みだと思っています。そのためデットロック等の異常事態が発生した際、復旧にはサーバー管理者権限が必要になったりするので仕方ないと思っています。
セマフォやMutexを利用しない排他制御の手段は、ファイルロック(flock)です。
C#のような言語では、lockステートメントやMonitor.TryEnterなどを利用することで実現できます。PHPではこのようなステートメントや高級な仕組みが用意されていません。
PHP でもコンパイル指定次第でセマフォ(sem_get 、sem_acquire)やMutexが使えます。レンタルサーバー上にあるPHPでは利用できないことが多いですね
セマフォはサーバー上資源を利用する仕組みだと思っています。そのためデットロック等の異常事態が発生した際、復旧にはサーバー管理者権限が必要になったりするので仕方ないと思っています。
セマフォやMutexを利用しない排他制御の手段は、ファイルロック(flock)です。
【PHP】number_formatの四捨五入を防ぐ考え方
PHPのnumber_format関数は数字を千の位毎にグループ化してフォーマットする関数です。
数値にカンマをつけたい、そんな場合に利用する関数です。
ただ、小数を含むフォーマットの場合には注意が必要です。number_format関数内で丸め(四捨五入)が働きます。
「12,339.9」と表示させたいのですが、number_formatではうまくいきません。
number_formatの挙動は以下の通り・・・・
数値にカンマをつけたい、そんな場合に利用する関数です。
ただ、小数を含むフォーマットの場合には注意が必要です。number_format関数内で丸め(四捨五入)が働きます。
echo 12339960/1000;
結果は12339.96です。「12,339.9」と表示させたいのですが、number_formatではうまくいきません。
echo number_format(12339960/1000,1);
結果は12,340.0です。number_formatの挙動は以下の通り・・・・