高级版使用自带的登陆为什么要花接近3秒钟 [ 2.0 版本 ]
数据库是导入自带的,
$model = new LoginForm();
if ($model->load(Yii::$app->request->post()) && $model->login()) {
return $this->render('/site/about');
} else {
Yii::$app->jump->error($model->errors, Url::to('@web/oem'));
}
部分日志
13 16:28:33.230 info yii\db\Command::query SELECT
kcu.constraint_name,
kcu.column_name,
kcu.referenced_table_name,
kcu.referenced_column_name
FROM information_schema.referential_constraints AS rc
JOIN information_schema.key_column_usage AS kcu ON
(
kcu.constraint_catalog = rc.constraint_catalog OR
(kcu.constraint_catalog IS NULL AND rc.constraint_catalog IS NULL)
) AND
kcu.constraint_schema = rc.constraint_schema AND
kcu.constraint_name = rc.constraint_name
WHERE rc.constraint_schema = database() AND kcu.table_schema = database()
AND rc.table_name = 'user' AND kcu.table_name = 'user'
/Applications/MAMP/htdocs/yii-advanced/common/models/User.php (82)
/Applications/MAMP/htdocs/yii-advanced/common/models/LoginForm.php (73)
/Applications/MAMP/htdocs/yii-advanced/common/models/LoginForm.php (44)
14 16:28:35.921 info yii\web\Session::open Session started
/Applications/MAMP/htdocs/yii-advanced/common/models/LoginForm.php (59)
/Applications/MAMP/htdocs/yii-advanced/frontend/controllers/IndexController.php (47)
15 16:28:35.925 info yii\web\User::login User '2' logged in from ::1 with duration 2592000.
/Applications/MAMP/htdocs/yii-advanced/common/models/LoginForm.php (59)
/Applications/MAMP/htdocs/yii-advanced/frontend/controllers/IndexController.php (47)
注意时间,日志13花了2秒多,是查了元数据?为什么要查?为什么这么慢?
共 3 个回答
-
RichardTian 回答于 2016-05-09 10:09 举报
是不是表很大呢?
共 8 条回复RichardTian 回复于 2016-05-09 14:31 回复@xihrni 如果直接写固定的帐号密码不查询数据库呢?
@RichardTian 我认为就不会这么长时间了,因为如果输错账号密码就很快,错的时候看日志就没有查这个什么元数据
RichardTian 回复于 2016-05-10 09:51 回复@xihrni 输错密码就很快的话,因为你也是要查询数据库才能校验密码的,所以应该不是数据库的问题。那么应该是登录的用户模块的问题了,你是用apache还是nginx呢?如果是windows的话,是用wamp吗?wamp有个可以webGrind可以查看具体加载项,你可以从那里看看具体调用了哪一些东西,或许会对你有帮助。
By.Richard@RichardTian 输错的时候我看了日志,是因为没有搜索information_schema这个表,但是不知道为什么登陆成功要搜索一遍这个表,另外是我mac。
RichardTian 回复于 2016-05-10 19:24 回复@xihrni 1.information schema 是mysql系统用的所有字典信息,包括数据库系统有什么库,有什么表,有什么字典,有什么存储过程等所有对象信息和进程访问、状态信息。 一旦删除该数据库系统将无法使用。MAMP吗?
@RichardTian 是这个MAMP PRO
RichardTian 回复于 2016-05-11 16:43 回复@xihrni 可以试一下把Yii框架的db缓存打开
xihrni
注册时间:2014-11-24
最后登录:2021-03-30
在线时长:10小时26分
最后登录:2021-03-30
在线时长:10小时26分
- 粉丝4
- 金钱455
- 威望0
- 积分555