Detailed explanation of ecshop database query cache
The query cache file is under the ecshop/upload/temp/query_cache directory
Write a test file test1.php tutorial under ecshop/upoad/ to test its query cache.
The code is as follows:
Php code
1. 2. //The first three sentences are mainly to do some initialization work, so that I can use the class library functions in ecshop, etc.
3. define('IN_ECS', true);
4. define('ECS_ADMIN', true);
5. require(dirname(__FILE__) . '/includes/init.php');
6. /*******
7. The GetALLCached function here takes a parameter of a sql statement,
8. Here you can simply understand this function as an operation of executing a sql query to obtain results.
9.*******/
10
. $article_array = $db->GetALLCached("SELECT article_id, title FROM " . $ecs->table("article") . " WHERE cat_id != 0 AND is_open = 1 AND open_type = 0 ORDER BY article_id DESC LIMIT 0,4");
11.
12. print_r($article_array);
13. //The printed array result is as follows
14. /*
15. Array
16. (
17. [0] => ; Array
18. (
19. [article_id] => [1] => Array
[2] t; Array
30. (
31. [ article_id] => 32
32. [article_id] => 31
38. [Title] = & gt; Nokia 6681 mobile advertising appreciation
39.)
40. */
42.? & Gt; Let's open the sqlcache file and take a look at the
Php code
1. 1273944294a:4:{i:0;a:2:{s:10:"article_id";s:2 :"35";s:5:"title";s:27:"I decide the world of "Wo"";}i:1;a:2:{s:10:"article_id";s:2:" 34";s:5:"title";s:14:"Popularization of 3G knowledge";}i:2;a:2:{s:10:"article_id";s:2:"32";s:5 :"title";s:18:"Mobile Game Download";}i:3;a:2:{s:10:"article_id";s:2:"31";s:5:"title";s :31:"Nokia 6681 mobile phone advertisement appreciation";}}
I found out that it is a string of processed things (actually processed by the serialize function)
The things in this sqlcache are actually the print_r($article_array just printed out )the result of.
The function $db->GetALLCached() was used in the test1.php file just now
It comes from the ecshop/upload/includes/cls_mysql tutorial.php file
GetALLCached() This function will call 2 actual processes for processing The function of caching (the sqlcache file just now).
The first function is setSqlCacheData
Php code
1.
2. /*
3. Function to set the query cache. If the query result of the sql statement in the GetALLCached function parameter is not cached, this function will be executed first , the function of this function is to serialize the result array obtained by sql and store it under a certain path
4. */
5. function setSqlCacheData($result, $data)
6. {
7. if ($result['storecache'] === true && $result['filename'])
8. {
9. @file_put_contents($result['filename'], '' . time() . serialize($data));
10. clearstatcache();
11. }
12. }
第二个函数是getSqlCacheData
Php代码
1. /*******
2.
3. The main function of this function is to restore the serialized files from the sqlcache database query cache file.
4. In this way, if a certain sql statement is executed again, the result of the sql statement has been cached, so there is no need to query the database anymore, and it can be read directly from the cache file.
5. ******/
6.
function getSqlCacheData($sql, $cached = '')
7. {
8. $sql = trim($sql);
9.
10. $result = array();
11. $result['filename'] = $this->root_path . $this->cache_data_dir . 'sqlcache_' . abs(crc32($this->dbhash . $sql)) . '_' . md5($this->dbhash . $sql) . '.php';
12.
13. $data = @file_get_contents($result['filename']);
14. if (isset($data{23}))
15. {
16. $filetime = substr($data, 13, 10);
17. $data = substr($data, 23);
18.
19. if (($cached == 'FILEFIRST' && time() > $filetime + $this->max_cache_time) || ($cached == 'MYSQLFIRST' && $this->table_lastupdate($this->get_table_name($sql)) > $filetime))
20. {
21. $result['storecache'] = true;
22. }
23. else
24. {
25. $result['data'] = @unserialize($data);
26. if ($result['data'] === false)
27. {
28. $result['storecache'] = true;
29. }
30. else
31. {
32. $result['storecache'] = false;
33. }
34. }
35. }
36. else
37. {
38. $result['storecache'] = true;
39. }
40.
41. return $result;
42. }
更多相关文章请关注PHP中文网(www.php.cn)!

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics











Which folder does the browser cache the video in? When we use the Internet browser every day, we often watch various online videos, such as watching music videos on YouTube or watching movies on Netflix. These videos will be cached by the browser during the loading process so that they can be loaded quickly when played again in the future. So the question is, in which folder are these cached videos actually stored? Different browsers store cached video folders in different locations. Below we will introduce several common browsers and their

DNS (DomainNameSystem) is a system used on the Internet to convert domain names into corresponding IP addresses. In Linux systems, DNS caching is a mechanism that stores the mapping relationship between domain names and IP addresses locally, which can increase the speed of domain name resolution and reduce the burden on the DNS server. DNS caching allows the system to quickly retrieve the IP address when subsequently accessing the same domain name without having to issue a query request to the DNS server each time, thereby improving network performance and efficiency. This article will discuss with you how to view and refresh the DNS cache on Linux, as well as related details and sample code. Importance of DNS Caching In Linux systems, DNS caching plays a key role. its existence

A Beginner's Guide to Guava Cache: Speed Up Your Applications Guava Cache is a high-performance in-memory caching library that can significantly improve application performance. It provides a variety of caching strategies, including LRU (least recently used), LFU (least recently used), and TTL (time to live). 1. Install Guava cache and add the dependency of Guava cache library to your project. com.goog

Title: Caching mechanism and code examples of HTML files Introduction: When writing web pages, we often encounter browser cache problems. This article will introduce the caching mechanism of HTML files in detail and provide some specific code examples to help readers better understand and apply this mechanism. 1. Browser caching principle In the browser, whenever a web page is accessed, the browser will first check whether there is a copy of the web page in the cache. If there is, the web page content is obtained directly from the cache. This is the basic principle of browser caching. Benefits of browser caching mechanism

There is a close interaction between the CPU (central processing unit), memory (random access memory), and cache, which together form a critical component of a computer system. The coordination between them ensures the normal operation and efficient performance of the computer. As the brain of the computer, the CPU is responsible for executing various instructions and data processing; the memory is used to temporarily store data and programs, providing fast read and write access speeds; and the cache plays a buffering role, speeding up data access speed and improving The computer's CPU is the core component of the computer and is responsible for executing various instructions, arithmetic operations, and logical operations. It is called the "brain" of the computer and plays an important role in processing data and performing tasks. Memory is an important storage device in a computer.

PHPAPCu (replacement of php cache) is an opcode cache and data cache module that accelerates PHP applications. Understanding its advanced features is crucial to utilizing its full potential. 1. Batch operation: APCu provides a batch operation method that can process a large number of key-value pairs at the same time. This is useful for large-scale cache clearing or updates. //Get cache keys in batches $values=apcu_fetch(["key1","key2","key3"]); //Clear cache keys in batches apcu_delete(["key1","key2","key3"]);2 .Set cache expiration time: APCu allows you to set an expiration time for cache items so that they automatically expire after a specified time.

SpringBoot is a popular Java framework known for its ease of use and rapid development. However, as the complexity of the application increases, performance issues can become a bottleneck. In order to help you create a springBoot application as fast as the wind, this article will share some practical performance optimization tips. Optimize startup time Application startup time is one of the key factors of user experience. SpringBoot provides several ways to optimize startup time, such as using caching, reducing log output, and optimizing classpath scanning. You can do this by setting spring.main.lazy-initialization in the application.properties file

How to Export Browser Cache Videos With the rapid development of the Internet, videos have become an indispensable part of people's daily lives. When browsing the web, we often encounter video content that we want to save or share, but sometimes we cannot find the source of the video files because they may only exist in the browser's cache. So, how do you export videos from your browser cache? This article will introduce you to several common methods. First, we need to clarify a concept, namely browser cache. The browser cache is used by the browser to improve user experience.
