我正在对NoSQL(Cassandra,HBase)和RDBMS(MySQL)数据库性能进行比较研究。
在关系模型中,我有一个包含10个表的数据模型。由于关系,一个人有6个外键和一个4个外键。
例如,当我运行以下查询时:
SELECT unique_carrier
FROM
(
SELECT C.unique_carrier,
COUNT(V.IDflight) FligthDelaysNumber,
SUM(V.DepDelay) TotalDelaysTime
FROM carriers C
INNER JOIN airplane A
ON A.Unique_carrier = C.unique_carrier
INNER JOIN flight V
ON V.TailNumber = A.TailNumber
WHERE V.DepDelay > 0
GROUP BY C.unique_carrier
) delays
ORDER BY FligthDelaysNumber DESC, TotalDelaysTime DESC
LIMIT 1;

当我使用EXPLAIN运行查询时,我得到以下结果:
当数据库没有外键时,查询性能要好得多。不应该相反吗?
如果定义了外键,我该如何优化查询?