MySQL视图永远占用
MySQL服务器5.6MySQL视图永远占用,mysql,views,multiple-columns,multiple-tables,Mysql,Views,Multiple Columns,Multiple Tables,MySQL服务器5.6 innodb_buffer_pool_size = 6GB key_buffer_size = 20M 这是我的模式: TBL_1 TBL_2 TBL_3 TBL_4 TBL_5 TBL_6 id id id id id id (int, primary key, auto increment) uid uid uid uid ui
innodb_buffer_pool_size = 6GB
key_buffer_size = 20M
这是我的模式:
TBL_1 TBL_2 TBL_3 TBL_4 TBL_5 TBL_6
id id id id id id (int, primary key, auto increment)
uid uid uid uid uid uid (varchar 100, key index)
dev dev dev dev dev dev (varchar 80)
intf intf intf intf intf intf (varchar 100)
stat1 stat2 stat3 stat4 stat5 stat6 (float, 11)
uid字段提供跨表行的唯一关系。
所有表格中的计数(*)为~52K
我的看法是:
VIEW_1
dev intf stat1 stat2 stat3 stat4 stat5 stat6
下面是我迄今为止尝试过的view select sql的一个示例:
select a.dev, a.intf, a.stat1, b.stat2, c.stat3, d.stat4, e.stat_5, f.stat_6
from TBL_1 a
inner join TBL_2 b on b.uid = a.uid
inner join TBL_3 c on c.uid = a.uid
inner join TBL_4 d on d.uid = a.uid
inner join TBL_5 e on e.uid = a.uid
inner join TBL_6 f on f.uid = a.uid
一旦超过2个连接,查询将变得无响应。对于上述查询,请解释返回
|| *id* || *select_type* || *table* || *type* || *possible_keys* || *key* || *key_len* || *ref* || *rows* || *Extra* ||
|| 1 || SIMPLE || e || ALL || uid || || || || 51391 || ||
|| 1 || SIMPLE || c || ref || uid || uid || 102 || db.e.uid || 1 || Using index condition ||
|| 1 || SIMPLE || a || ref || uid || uid || 102 || db.c.uid || 1 || ||
|| 1 || SIMPLE || b || ref || uid || uid || 257 || db.c.uid || 1 || Using index condition ||
|| 1 || SIMPLE || f || ref || uid || uid || 257 || db.c.uid || 1 || Using index condition ||
|| 1 || SIMPLE || d || ref || uid || uid || 102 || db.e.uid || 1 || Using index condition ||
关于如何改进这一点有什么建议吗?检查查询的解释计划
EXPLAIN SELECT * from ABC;
检查这个
按解释输出考虑添加<代码>索引< /代码>或使用其他
如果这无助于粘贴您的解释计划,请进一步查看干杯 也许您错过了,但我在底部包含了优化器执行计划。干杯,谢谢你的关注!