sql >> データベース >  >> RDS >> Mysql

MySQLでのmemcacheはどのように機能しますか?

    一般に、キャッシュは非常に高速なキー/値ストレージエンジンであり、事前に定義されたキーで値(通常はシリアル化)を保存できるため、同じキーで保存された値を取得できます。

    MySQLに関連して、データベースにリクエストを発行する前に、キャッシュ内のデータの存在を確認するような方法でアプリケーションコードを記述します。一致するものが見つかった場合(一致するキーが存在する場合)、キーに関連付けられたデータにアクセスできます。目標は、回避できる場合は、よりコストのかかるデータベースにリクエストを発行しないことです。

    例(説明のみ):

    $cache = new Memcached();
    
    $cache->addServer('servername', 11211);
    
    $myCacheKey = 'my_cache_key';
    
    $row = $cache->get($myCacheKey);
    
    if (!$row) {
    
        // Issue painful query to mysql
        $sql = "SELECT * FROM table WHERE id = :id";
    
        $dbo->prepare($sql);
        $stmt->bindValue(':id', $someId, PDO::PARAM_INT);
    
        $row = $stmt->fetch(PDO::FETCH_OBJ);
    
        $cache->set($myCacheKey, serialize($row));
    }
    
    // Now I have access to $row, where I can do what I need to
    // And for subsequent calls, the data will be pulled from cache and skip
    // the query altogether
    var_dump(unserialize($row));
    

    memcached でPHPドキュメントを確認してください 詳細については、いくつかの良い例とコメントがあります。



    1. sarの防衛(およびそれを構成する方法)

    2. 動的SQLとストアドプロシージャ

    3. Oracle番号からC#10進数

    4. SQLServer結果セットの行を制限する方法