私はウェブサイトを作っていますが、このウェブサイトには100MBのsqliteファイルがあります。このファイルは更新されません。sqliteファイルの内容が共有メモリに保存されている場合、phpを使ってsqliteにアクセスするには?
このDBファイルは、すべての要求は、100MBのデータを検索しますつまり、1つのテーブルのみを有する、非常に多くの人々は私がウェブサイトをスピードアップするためにメモリを使用する予定のウェブサイト
を表示したとき、私はパフォーマンスを心配したが、私はサーバーの管理権限(mysqlを含む)を持っていないので、memcached redisなどのソフトウェアをインストールすることはできません。ネイティブ/デフォルトのソリューションが必要です。
私は共有メモリを選択するので、このプログラムを使用してメモリ内のsqliteファイル全体をキャッシュします。 PDOは、文字列のみのDSN
を受け入れるため
しかし、私は、メモリ内のデータベースにアクセスすることができますどのように、メモリ内のファイルにアクセスする方法がわかりませんか?
$size=filesize ("mydb.sqlite");
$data=file_get_contents("mydb.sqlite");
$systemid = 12; // System ID for the shared memory segment
$mode = "c"; // Access mode
$permissions = 0755; // Permissions for the shared memory segment
$shmid = shmop_open($systemid, $mode, $permissions, $size);
shmop_write($shmid, $data, 0);
// used in other process
$size = shmop_size($shmid);
$sqlite_file_data=shmop_read($shmid, 0, $size);
それが不可能な場合、私は共有メモリへのPHPのオブジェクトを格納するために、データベース全体を格納する をはstdClassを使用するには、このプログラムを書き換えるだろう、私はすべてに100MBのJSONをデシリアライズし、JSON文字列に変換する必要があります多くのCPUと時間がかかることがあります。 生のオブジェクトをメモリに直接保存できますか?