sql >> Database teknologi >  >> RDS >> Mysql

Hvordan fungerer memcache med MySQL?

Cache er generelt en meget hurtig nøgle/værdi-lagringsmotor, hvor du kan gemme værdier (normalt serialiseret) med en forudbestemt nøgle, så du kan hente de lagrede værdier med den samme nøgle.

I forhold til MySQL vil du skrive din applikationskode på en sådan måde, at du tjekker for tilstedeværelsen af ​​data i cachen, før du sender en anmodning til databasen. Hvis der blev fundet et match (der findes matchende nøgle), vil du så have adgang til de data, der er knyttet til nøglen. Målet er ikke at udstede en anmodning til den dyrere database, hvis det kan undgås.

Et eksempel (kun demonstrativt):

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

Tjek PHP-dokumenter på memcached for mere info er der nogle gode eksempler og kommentarer.



  1. Konverter 'datetime' til 'date' i SQL Server (T-SQL-eksempler)

  2. Hvad betyder det at bruge parenteser med en OR i SQL?

  3. Mestring af brugen af ​​stoplister med SQL Server Full-Text Search (FTS)

  4. SQL Server REPLACE() vs TRANSLATE():Hvad er forskellene?