[codeigniter 五]、查询缓存
数据库缓存类
数据库缓存类允许你把数据库查询结果保存在文本文件中以减少数据库访问。
重要
当缓存启用时,本类会被数据库驱动自动加载,切勿手动加载。
重要
并非所有查询结果都能被缓存,请仔细阅读本页内容。
启用缓存
启用缓存需要三步:
- 在服务器上创建一个可写的目录以便保存缓存文件;
- 通过文件 application/config/database.php 中的 cachedir 参数设置其目录路径;
- 通过将文件 application/config/database.php 中的 cache_on 参数设置为 TRUE,也可以用下面的方法手动配置。
缓存一旦启用,每一次加载页面时,只要该页面含有数据库查询就会自动缓存起来。
缓存是如何工作的?
当你在访问页面时,CodeIgniter 的查询缓存系统会自动运行。如果缓存被启用,当页面第一次加载时,查询结果对象会被序列化并保存到服务器上的一个文本文件中。当下次再访问该页面时,会直接使用缓存文件而不用访问数据库了,这样,在已缓存的页面,你的数据库访问会降为 0 。
只有读类型(SELECT)的查询可以被缓存,因为只有这类查询才会产生结果。写类型的查询(INSERT、UPDATE 等)并不会生成结果,所以不会被缓存。
缓存文件永不过期,所有的查询只要缓存下来以后除非你删除它们否则将一直可用。你可以针对特定的页面来删除缓存,或者也可以清空掉所有的缓存。一般来说,你可以在某些事件发生时(如数据库中添加了数据)用下面的函数来清除缓存。
缓存能够提升站点的性能吗?
缓存能否获得性能增益,取决于很多因素。如果你有一个低负荷而高度优化的数据库,你可能不会看到性能的提升。而如果你的数据库正在被大量访问,您可能会看到缓存后的性有所提升,前提是你的文件系统并没有太多的开销。要记住一点的是,缓存只是简单的改变了数据获取的途径而已,从访问数据库变成了访问文件系统。
例如,在一些集群服务器环境中,由于文件系统的操作太过频繁,缓存其实是有害的。在共享的单一服务器环境中,缓存才可能有益。不幸的是,关于是否需要缓存你的数据库这个问题并没有唯一的答案,这完全取决于你的情况。
缓存文件是如何存储的?
CodeIgniter 将每个查询都缓存到它单独的缓存文件中,根据调用的控制器方法缓存文件被进一步组织到各自的子目录中。更准确的说,子目录是使用你 URI的前两段(控制器名 和 方法名)命名的。
例如,你有一个 blog 控制器和一个 comments 方法,并含有三个不同的查询。缓存系统将创建一个名为 blog+comments 的目录,并在该目录下生成三个缓存文件。
如果你的 URI 中含有动态查询时(例如使用分页时),每个查询实例都会生成它单独的缓存文件,因此,最终可能会出现缓存文件数是你页面中的查询次数的好几倍这样的情况。
管理你的缓存文件
由于缓存文件不会过期,那么你的应用程序中应该有删除缓存的机制,例如,我们假设你有一个博客并允许用户评论,每当提交一个新评论时,你都应该删除掉关于显示评论的那个控制器方法对应的缓存文件。下面将介绍有两种不同的方法用来删除缓存数据。
不是所有的数据库方法都兼容缓存
最后,我们必须得指出被缓存的结果对象只是一个简化版的结果对象,正因为这样,有几个查询结果的方法无法使用。
下面列出的方法是无法在缓存的结果对象上使用的:
- num_fields()
- field_names()
- field_data()
- free_result()
同时,result_id 和 conn_id 这两个 id 也无法使用,因为这两个 id只适用于实时的数据库操作。
函数参考
$this->db->cache_on() / $this->db->cache_off()
用于手工启用/禁用缓存,当你不想缓存某些查询时,这两个方法会很有用。例子:
// Turn caching on $this->db->cache_on(); $query = $this->db->query("SELECT * FROM mytable"); // Turn caching off for this one query $this->db->cache_off(); $query = $this->db->query("SELECT * FROM members WHERE member_id = '$current_user'"); // Turn caching back on $this->db->cache_on(); $query = $this->db->query("SELECT * FROM another_table");
$this->db->cache_delete()
删除特定页面的缓存文件,这当你更新你的数据库之后需要清除缓存时很有用。
缓存系统根据你访问页面的 URI 来将缓存写入到相应的缓存文件中去,例如,如果你在访问 example.com/index.php/blog/comments 这个页面,缓存系统会将缓存文件保存到 blog+comments 目录下,要删除这些缓存文件,你可以使用:
$this->db->cache_delete('blog', 'comments');
如果你没提供任何参数,将会清除当前 URI 对应的缓存文件。
$this->db->cache_delete_all()
清除所有的缓存文件,例如:
$this->db->cache_delete_all();
版权声明:本文为博主原创文章,未经博主允许不得转载。
以上就介绍了[codeigniter 五]、查询缓存,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

De nombreux utilisateurs choisiront la marque Huawei lors du choix des montres intelligentes. Parmi eux, les Huawei GT3pro et GT4 sont des choix très populaires. De nombreux utilisateurs sont curieux de connaître la différence entre Huawei GT3pro et GT4. Quelles sont les différences entre Huawei GT3pro et GT4 ? 1. Apparence GT4 : 46 mm et 41 mm, le matériau est un miroir en verre + un corps en acier inoxydable + une coque arrière en fibre haute résolution. GT3pro : 46,6 mm et 42,9 mm, le matériau est du verre saphir + corps en titane/corps en céramique + coque arrière en céramique 2. GT4 sain : en utilisant le dernier algorithme Huawei Truseen5.5+, les résultats seront plus précis. GT3pro : ajout d'un électrocardiogramme ECG, d'un vaisseau sanguin et de la sécurité

La chose est en fait comme ça. À ce moment-là, mon chef m'a confié une tâche de surveillance des performances du matériel. Pendant le processus d'utilisation de perf, j'ai entré la liste des commandes perf et j'ai vu les informations suivantes : Ma tâche est d'activer ces événements de cache. être compté normalement. Mais le fait est que je n'ai aucune idée de ce que signifient ces ratés et ces charges.

Pourquoi l'outil Snipping ne fonctionne pas sous Windows 11 Comprendre la cause première du problème peut aider à trouver la bonne solution. Voici les principales raisons pour lesquelles l'outil de capture peut ne pas fonctionner correctement : L'assistant de mise au point est activé : cela empêche l'ouverture de l'outil de capture. Application corrompue : si l'outil de capture plante au lancement, il est peut-être corrompu. Pilotes graphiques obsolètes : des pilotes incompatibles peuvent interférer avec l'outil de capture. Interférence provenant d'autres applications : d'autres applications en cours d'exécution peuvent entrer en conflit avec l'outil de capture. Le certificat a expiré : une erreur lors du processus de mise à niveau peut provoquer ce problème. Solution simple. Celles-ci conviennent à la plupart des utilisateurs et ne nécessitent aucune connaissance technique particulière. 1. Mettez à jour les applications Windows et Microsoft Store

L'utilisation du cache peut augmenter la vitesse de l'ordinateur car le cache réduit le temps d'attente du processeur. Le cache est une mémoire petite mais rapide située entre le processeur et la mémoire principale DRAM. La fonction du cache est d'augmenter le taux d'entrée et de sortie des données du processeur ; le cache a une petite capacité mais une vitesse rapide, tandis que la vitesse de la mémoire est faible mais a une grande capacité. En optimisant l'algorithme de planification, les performances du système seront améliorées. grandement amélioré.

Dans cet article, nous allons vous montrer comment réorganiser plusieurs colonnes dans PowerQuery par glisser-déposer. Souvent, lors de l'importation de données provenant de diverses sources, les colonnes peuvent ne pas être dans l'ordre souhaité. La réorganisation des colonnes vous permet non seulement de les organiser dans un ordre logique adapté à vos besoins d'analyse ou de reporting, mais elle améliore également la lisibilité de vos données et accélère les tâches telles que le filtrage, le tri et l'exécution de calculs. Comment réorganiser plusieurs colonnes dans Excel ? Il existe de nombreuses façons de réorganiser les colonnes dans Excel. Vous pouvez simplement sélectionner l'en-tête de colonne et le faire glisser vers l'emplacement souhaité. Cependant, cette approche peut devenir fastidieuse lorsqu’il s’agit de grands tableaux comportant de nombreuses colonnes. Pour réorganiser les colonnes plus efficacement, vous pouvez utiliser l'éditeur de requête amélioré. Améliorer la requête

Le cache est appelé mémoire cache. Il s'agit d'une mémoire haute vitesse de petite capacité entre l'unité centrale et la mémoire principale. Elle est généralement composée de SRAM haute vitesse. Ce type de mémoire locale est orienté vers le CPU. pour réduire ou éliminer l'écart entre le processeur et la mémoire. L'impact de la différence de vitesse entre eux sur les performances du système. La capacité du cache est petite mais rapide, la vitesse de la mémoire est faible mais la capacité est grande. En optimisant l'algorithme de planification, les performances du système seront grandement améliorées.

Plug-in de base de données ReactQuery : méthodes pour implémenter l'importation et l'exportation de données, des exemples de code spécifiques sont nécessaires. Avec l'application généralisée de ReactQuery dans le développement front-end, de plus en plus de développeurs commencent à l'utiliser pour gérer les données. Dans le développement réel, nous devons souvent exporter des données vers des fichiers locaux ou importer des données de fichiers locaux dans la base de données. Afin d'implémenter ces fonctions plus facilement, vous pouvez utiliser le plug-in de base de données ReactQuery. Le plugin de base de données ReactQuery fournit une série de méthodes

Voici le tutoriel pour la mise en cache du proxy inverse nginx : Installez nginx : sudoaptupdatesudoaptinstallnginx Configurez le proxy inverse : Ouvrez le fichier de configuration nginx : sudonano/etc/nginx/nginx.conf Ajoutez la configuration suivante dans le bloc http pour activer la mise en cache : http{...proxy_cache_path /var/cache/nginxlevels=1:2keys_zone=my_cache:10mmax_size=10ginactive=60muse_temp_path=off;proxy_cache
