sql >> Database >  >> RDS >> Mysql

Hoe werkt memcache met MySQL?

Cache is over het algemeen een zeer snelle sleutel/waarde-opslagengine waarin u waarden (meestal geserialiseerd) kunt opslaan met een vooraf bepaalde sleutel, zodat u de opgeslagen waarden met dezelfde sleutel kunt ophalen.

Met betrekking tot MySQL zou u uw applicatiecode zo schrijven dat u zou controleren op de aanwezigheid van gegevens in de cache, voordat u een verzoek aan de database stuurt. Als er een overeenkomst is gevonden (overeenkomstige sleutel bestaat), zou u dan toegang hebben tot de gegevens die aan de sleutel zijn gekoppeld. Het doel is om geen verzoek te sturen naar de duurdere database als dit kan worden vermeden.

Een voorbeeld (alleen ter demonstratie):

$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));

Bekijk PHP-documenten op memcached voor meer info zijn er enkele goede voorbeelden en opmerkingen.



  1. Top Facebook-groepen voor Analytics, Big Data, Data Mining, Hadoop, NoSQL, Data Science

  2. Reverse engineer SQLAlchemy declaratieve klassendefinitie van bestaande MySQL-database?

  3. Wat is GEEN logische operator in SQL Server - SQL Server / TSQL-zelfstudie, deel 121

  4. Query voor exacte overeenkomst van een string in SQL