Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Jak działa memcache z MySQL?

Ogólnie rzecz biorąc, pamięć podręczna jest bardzo szybkim mechanizmem przechowywania kluczy/wartości, w którym można przechowywać wartości (zwykle zserializowane) za pomocą z góry określonego klucza, dzięki czemu można pobierać przechowywane wartości za pomocą tego samego klucza.

W odniesieniu do MySQL pisałbyś kod aplikacji w taki sposób, aby przed wysłaniem żądania do bazy danych sprawdzać obecność danych w pamięci podręcznej. Jeśli zostanie znalezione dopasowanie (pasujący klucz istnieje), będziesz miał dostęp do danych powiązanych z kluczem. Celem jest, aby nie wysyłać żądania do bardziej kosztownej bazy danych, jeśli można tego uniknąć.

Przykład (tylko poglądowy):

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

Zapoznaj się z dokumentacją PHP na memcached aby uzyskać więcej informacji, jest kilka dobrych przykładów i komentarzy.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Policzyć liczbę wystąpień ciągu w polu VARCHAR?

  2. Sprawdź czas odpowiedzi na wysłanej wiadomości - możliwe przy użyciu tylko SQL?

  3. Błąd MySQL/PHP:[2002] Zwykle dozwolone jest tylko jedno użycie każdego adresu gniazda (protokół/adres sieciowy/port)

  4. Jak porównać ciąg wersji (x.y.z) w MySQL?

  5. Jak dodawać adnotacje do pola autoinkrementacji MYSQL za pomocą adnotacji JPA?