Views 很方便,但似乎有點慢。測試使用 Views 及直接 SQL 的效能差別:
|
1000 rows (Time per request [ms] (mean)) |
20 rows (Time per request [ms] (mean)) |
|
| SQL QUERY (CACHED) | 57.276 | 55.332 |
| SQL QUERY (No Caches) | 84.978 | 59.483 |
| Views (CACHED) | 114.723 | 94.136 |
** Views (No Caches) 可以略過,因為相差極遠
** 估計消耗是在 Views 存取 CACHES 中 / Ctools。
測試程式碼:
SQL QUERY ( CACHED )
if($table_cache = cache_get('table_cache')) {
echo $table_cache->data;
}
else {
$query = '
SELECT node.title AS node_title, node.type AS node_type, node.status AS node_status, node.created AS node_created
FROM
{node} node
WHERE (( (node.status = \'1\') ))
ORDER BY node_created DESC
LIMIT 1000 OFFSET 0';
$res = db_query($query);
$val = '';
$val['header'] = array('Title', 'Type', 'Published');
foreach ($res as $value) {
if($value->node_status == 1) {
$value->node_status = 'Yes';
}
else {
$value->node_status = 'No';
}
unset($value->node_created);
$val['rows'][] = (array) $value;
}
$table = theme('table', $val);
echo $table;
cache_set('table_cache', $table);
}VIEWS ( CACHED )
echo views_embed_view('test');
** 測試預載 CACHES 後,再進行 **

寫下您的回覆