2011-02-23 19 views
7

Busco un sistema para almacenar en caché un proyecto que ya está codificado (con PHP), que tiene características como sistema de registro y de inicio de sesión, etc.consulta el almacenamiento en caché de PHP para MySQL Rendimiento

he buscado algunas soluciones de almacenamiento en caché, pero Leí que el sistema de registro y publicación falla si uso tales características.

Lo que realmente necesito es almacenar los resultados de algunas consultas de bases de datos específicas, si hay una memoria caché, invocar los resultados, si no se genera una nueva memoria caché, y volver a almacenarlas en caché en cada x minutos. (los resultados se pueden almacenar en txt, etc.).

¿Cómo puedo hacer eso?

Por cierto, establecer query_cache_type en 1 no funciona. Estoy buscando soluciones alternativas.

Gracias

+1

Probablemente esto puede ser útil: http://stackoverflow.com/questions/672029/best-technique-for-caching-results-from-queries-that-change-infrequently –

Respuesta

6

Consulte el ejemplo del uso de Memcache: here

Básicamente lo que necesita para almacenar en caché la consulta:

# After: [with memcache] 
    $rSlowQuery = mysql_query_cache($sql); 
    # $rSlowQuery is an array 
    $rows = count($rSlowQuery); 
    for ($i=0;$i<$rows;$i++) { } 
1

Usted puede intentar esto:

$mysqli -> query("/*qc=on*/ SELECT * FROM table"); 
5

Reducir Llamadas a la base de datos Consulte phpFastCache que admita WinCache, MemCache, Files, X-Cache, APC Cache. Es muy sencillo para los principiantes

PHP almacenamiento en caché de clase para la base de datos: Su sitio web tiene 10.000 visitantes que están en línea, y la página dinámica que enviar 10.000 mismas consultas a la base de datos en cada carga de página. Con phpFastCache, su página solo envía 1 consulta a DB, y utiliza el caché para dar servicio a 9,999 visitantes adicionales.

<?php 
    // In your config file 
    include("php_fast_cache.php"); 
    // This is Optional Config only. You can skip these lines. 
    // phpFastCache support "apc", "memcache", "memcached", "wincache" ,"files", "pdo", "mpdo" and "xcache" 
    // You don't need to change your code when you change your caching system. Or simple keep it auto 
    phpFastCache::$storage = "auto"; 
    // End Optionals 

    // In your Class, Functions, PHP Pages 
    // try to get from Cache first. 
    $products = phpFastCache::get("products_page"); 

    if($products == null) { 
     $products = YOUR DB QUERIES || GET_PRODUCTS_FUNCTION; 
     // set products in to cache in 600 seconds = 10 minutes 
     phpFastCache::set("products_page",$products,600); 
    } 

    foreach($products as $product) { 
     // Output Your Contents HERE 
    } 
?> 
Cuestiones relacionadas