我正在为我的codeigniter应用程序创建数据库驱动的路由。问题是,如果我的表中有超过X几十行,我的应用程序运行速度超慢!问题是我没有使用或从我创建的路由表中获取任何信息。
事实上,我在我的应用程序的缓存文件夹中使用路径文件。
所以这就是我没有缓存文件和DB空的东西:
0.0071 / 0,0196 / 0.0268
以下是我的20.000行和缓存文件的内容:(缓存文件为20.000行)
0.2637 / 0,0114 / 0.2752
以下是空DB和缓存文件的内容:(缓存文件为20.000行)
0.0036 / 0.0142 / 0.0179
所以,我不知道为什么我在这三个基准之间有这么大的差异!
有没有办法缓存de数据库或对它做些什么?
如果有人可以帮助我,请提前谢谢。
答案 0 :(得分:0)
在我的第一个案例中,我正在使用这样的Hook:
require_once APPPATH。“config / database.php”;
$hook['pre_system'] = array(
'class' => 'Router_Hook',
'function' => 'get_routes',
'filename' => 'Router_Hook.php',
'filepath' => 'hooks',
'params' => array($db['default']['hostname'],$db['default']['username'],$db['default']['password'],$db['default']['database'],$db['default']['dbprefix'],)
);
在我的router_hook文件中,我有:
function get_routes($params)
{
global $DB_ROUTES;
mysql_connect($params[0], $params[1], $params[2]);
mysql_select_db($params[3]);
$sql = "SELECT * FROM {$params[4]}routes";
$query = mysql_query($sql);
$routes = array();
while ($route = mysql_fetch_array($query, MYSQL_ASSOC)) {
$routes[$route['route']] = $route['controller'];
}
mysql_free_result($query);
mysql_close();
$DB_ROUTES = $routes;
}
我的路由中有一个包含config / routes.php
中的全局变量的包含现在我将其更改为缓存文件夹中的缓存版本=> cache / routes.php和我将它包含在我的config / routes.php
中所以我不再需要我的钩了=>性能提升!