0

私はしばらくの間、PHP 用の GAE または Google App Engine を使用しており、基本的な cloudSQL を使用してそこからデータを読み取ります。数か月が経過したため、最適化するために、フォームの自動入力がテーブルから名前を読み取るために使用する読み取りの数を減らしたいと考えました。1 日あたり 80,000 もあり、シンプルなフォームとしては非常に高くなっています。

Google では、バケットを使用せずにテキスト ファイルやその他の一時ファイルに書き込むことを許可していないため (私はバケットを持っていません。さらに言えば、なぜバケットが必要なのです? )毎日更新し、実際のテーブルではなくキャッシュから読み取りクエリを実行するため、読み取り数が減少します。

それは私が壁にぶつかったということです。私はこれの初心者であり、経験豊富なプロはこれを理解するかもしれませんが

https://developers.google.com/appengine/docs/php/memcache/#PHP_PHP_memcache_implementation

私はそれが何を言っているのか分かりません。

GAE のキャッシュ機能の使い方を教えてくれる人はいますか? 「使い方」を検索してみましたが、見つかりませんでした。

私のオートコンプリート機能は次のようになります

setAutoComplete("name", "results1", "autocomplete.php?part=");

そのため、キーアップ後にフォームにテキストが入力されるたびに、オートコンプリート php が呼び出されます。

そして、そのSQL部分は次のようになります

$sql = "SELECT SUBSTRING(NAME,1,300) AS Name FROM `Table` WHERE Name LIKE '{$p}%'";
// Check Query ran sucessfully
$query = mysql_query($sql) or die("Query failed: " . mysql_error() . " Actual query: " . $query);
//Create an array with the results
$results = array();
while ($user = mysql_fetch_object($query)) {
    $results[] = $user -> Name;
    }
//using JSON to encode the array
echo json_encode($results);

これでクリアな絵が描けるといいな。私と同様の回答を探してここに来る可能性のある他の人から、事前に感謝します。

PS - PHP マニュアルを読んでいますが、あまり役に立ちません。

4

1 に答える 1

1

GAE でサポートされている両方の memcache API (Memcache と Memcached) を使用しました。これが Memcache コードです (クエリが正しく機能していると仮定します)。

    $data = array();
    $key = 'memcahcetestkey';
    $memcache = new Memcache;
    $data = $memcache->get($key);
    if ($data === false) {
      $data = $results ;//yourQueryResult;
      $memcache->set($key, $data);
    }

次に、次を使用してmemcacheの値を確認します$your_memecach_array=$memcache->get($key);

于 2013-10-09T03:56:29.867 に答える