問題タブ [database-caching]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
php - codeigniter データベース キャッシュが機能しない
codeigniter データベースのキャッシングに問題があるため、知りたいだけです。
database.php ファイルを介してキャッシュを有効にしようとしました
問題は、キャッシュが正常に作成され、 $this->db->cache_delete() を使用してキャッシュを削除することもできます
こちらもエラーなし。しかし問題は、キャッシュからデータを取得できないことです。
皆さんは何が問題だと思いますか.. 私はインターネットを見てきましたが、運がありません.
php - Laravel 4 Cache::remember が指定された ID の応答を返すことはありません
PHP Shopify コネクタと組み合わせて Laravel 4 を使用しています。最初に必要になったときに特定の製品ページをキャッシュすることで、Shopify 製品を取得するための呼び出しを制限しようとしています。
このフローをテストするために、Laravel で次の簡単なルートを作成しました。
ShopifyLib は、Shopify コネクタと通信するために私が作成した PHP ライブラリです。この呼び出しは、JSON 形式の製品ページを常に正しく返します。問題は、呼び出しが常に Shopify に対して外部で行われ、キャッシュから取得されないことです。
次のエントリを保存してデータベース キャッシュを使用しています。
$id は決して変更されないため、このエントリは毎回返されるはずです。
以下を使用して、より簡単な例を試しました。
これは、非キャッシュを 1 回呼び出すだけで、それ以降のすべての呼び出しがキャッシュに送られるという期待どおりに機能しました。
php - PHPファイルによるキャッシング
簡単なコーディングでphpスクリプトを作成しています。私はキャッシングについてあまり知識がありません。しかし、ロード時間を改善するオブジェクトキャッシング、データベースキャッシングがあると聞いたことがあります。
たとえば、サンプルの php クエリがあります。データベース キャッシングを有効にする方法と、オブジェクト キャッシングの基本について教えてください。
java - Guava Cache および Spring for Database キャッシングを実装するためのサンプル アプリケーション
まず、私は Guava キャッシュと Spring もまったく初めてです。50 以上のサイトを検索しましたが、探していたものを取得できませんでした。春を使用してデータベース値をキャッシュするためのグアバキャッシュの実装を探しています。
また、以前は実装Ehcache
していましたが、次の問題がありました。
- それは動作しません
static
(私の調査結果によると)。 @Cacheable
Bean 以外のクラス インスタンスを介してキャッシュ可能なメソッドが呼び出された場合に動作しません。これは同様の問題です。- 新しいキャッシュを毎回構成する必要があります (
ehcache.xml
)。などが問題でした。
だから今、私はハードルを乗り越えることができる解決策を探していguava cache
ます。list
また、DB からデータをキャッシュする方法が他にある場合は、お知らせください (などの手動キャッシュ実装以外hashmap
)。
java - net.sf.ehcache.ObjectExistsException: デフォルト キャッシュは既に構成されています
Spring (4.2.6.RELEASE) と Hibernate (5.1.0.Final) を使用しています。spring.xml で Bean として定義された Hibernate プロパティ。
そして、第 2 レベルのキャッシュ ライブラリ用に ehcache を追加しました。エラーnet.sf.ehcache.ObjectExistsException: The Default Cache has already been configured in following project が発生しています。
手伝ってくれる人はいますか?
**************************** applicationContext-dao.xml **************** ************************
以下の GenericDao Class を実装しました。このクラスはエンティティをジェネリックとして取得します。
**************************** GenericDao ******************** **
Junit Test Class では、このように挿入バッチを呼び出します。
************************** TestClass.java ********************* ********
***************************** ehcache.xml ****************** ****
php - Codeigniter キャッシング Web ページとデータベース。デファレンスとは何ですか?
今、フレームワークとして codeigniter を使い始めたところです。多くのデータがデータベースに保存されます。codeigniter のキャッシングシステムについて詳しく読みました。そして、データベースキャッシングとウェブページキャッシングの2種類のキャッシングがあることがわかりました。ここでの私の質問は、いつデータベース キャッシングを使用する必要があるかということです。また、いつ Web ページ キャッシングを使用する必要がありますか?
codeigniter - Codeigniter db キャッシュがブラウザーキャッシュと競合する
私は自分の codeigniter プロジェクトで db キャッシュを使用しています。そのアプリケーションをサーバーにアップロードすると、使用してサーバーに保存する db キャッシュと、htaccess ファイルで使用するブラウザー キャッシュとの間に少し競合が生じます。
正確には何が問題なのですか。両方のキャッシュ方法が有効になっている場合、コンテンツを適切に表示する際に問題があります。ログインしていない場合、f5 を使用して Web サイトを更新するか、ブラウザの更新ボタンをクリックした場合にのみ変更されます。
だから私の質問は、正しいコンテンツを表示する際に問題なくキャッシング(ciからのdbキャッシュとブラウザキャッシング)の両方を使用するにはどうすればよいですか? それとも、キャッシュするメソッドを 1 つだけ選択する必要がありますか?
敬具
json - JSONB フィールドを検索すると、Postgres でクエリ時間が 62 倍増加するのはなぜですか?
単一のテーブルからデータを取得する単純なクエリを実行しています。テーブルにある非 JSON フィールドのみを検索すると、クエリに 16 ミリ秒かかります。JSONB データのフィールドを参照するフィールドを含めると、62 倍になります。2 つの異なる JSONB フィールドを検索すると、それが 2 倍になります。
クエリは、SELECT 句に含まれる 2 つの JSON フィールドで 2.0 秒かかります。1 つを省略した場合は 1.0 秒かかり、両方の JSON フィールドを省略した場合、クエリは 16 ミリ秒しかかかりません。
テーブル自体には約 700 のレコードがあります。クエリは 83 レコードを返します。さまざまなクエリを実行すると、 2 つの JSON フィールドをクエリする場合、返されるレコードが多いほど、クエリが完了するまでに時間がかかる (約 0.0066 * X 1.32ミリ秒) ことに気付きました。
車両とトリップのルックアップにインデックスを追加してみましたが、(予想どおり) 大きな違いはありませんでした。データの実際の取得であり、JSONB フィールドでデータを見つけるのに時間がかかるようです。ここで、JSON フィールドが WHERE 句で必要だった場合、この種の劣化がより理解しやすくなりますが、そうではありません。
もちろん、単純な解決策は、JSON blob から各フィールドを取り出して、テーブル自体に個別のフィールドを作成することです。しかし、そのルートに行く前に、このパフォーマンスの問題を解決できるものは他にありますか?
ANALYZE の結果は次のとおりです。
もう 1 つの興味深い観察結果は、同じクエリを複数回実行しても、後続の同一のクエリで期待されるキャッシュの改善が見られないことです。
ストックpostgresサーバー構成に加えた唯一の変更は、shared_buffers
を128MBから256MBに増やし、effective_cache_size = 1GB
. max_connections
また、を 100 から 20 に減らしました。
上記の結果は、8 コア i7 プロセッサの Win7 で実行されています。また、デュアル コア CPU の Ubuntu で同じテストを実行したところ、クエリにかかった時間はほぼ同じでした: 2.2 秒 (SELECT 句に 2 つの JSONB フィールドを含めた場合)。
更新:
SELECT 句の単一の JSON フィールド:
結果:
SELECT 句に JSON フィールドがありません:
結果:
テーブル定義:
更新 #2:
@Mark_M が指摘したようにキャストの問題を修正し、json
jsonb` に変更すると、クエリ時間が 2 秒から 300 ミリ秒に短縮されます。
これはかなり改善されましたが、まだ JSON 以外のフィールドを使用して検索するだけで 18 倍になりましたが、これははるかに優れています。JSONB フィールドを使用する場合、これは妥当なパフォーマンス ヒットですか?