SQL面试题更新 2026-08-05

请解释 Cassandra 中 CQL 的含义,并说明它与传统 SQL 在语法和行为上的主要区别。

数据技术原理方案权衡Apache CassandraSQL

考察说明

考查对 Cassandra 查询语言 CQL 的基本认知及其与关系型 SQL 的差异理解。

回答思路

  1. 【回答框架 1】CQL 是 Cassandra 的类 SQL 查询语言,用于定义表结构、执行数据操作和查询,但其底层基于分布式架构,不支持关系型数据库的 JOIN、聚合等复杂操作。
  2. 【回答框架 2】SQL 面向关系模型,支持表关联、事务 ACID 和灵活查询;CQL 面向 Cassandra 的分布式键值存储,数据模型以表形式呈现,但必须设计主键和分区键。
  3. 【回答框架 3】CQL 不支持 JOIN、子查询、事务(除非使用轻量事务)等特性,查询通常需要指定分区键或使用 ALLOW FILTERING,性能依赖主键设计。
  4. 【回答框架 4】CQL 的语法与 SQL 类似,如 CREATE TABLE、SELECT、INSERT 等,但约束和限制不同,例如没有外键、没有自动递增等。
  5. 【关键点 1】CQL 是 Cassandra 的查询语言,语法接近 SQL。
  6. 【关键点 2】CQL 不支持 JOIN 和复杂事务。
  7. 【关键点 3】CQL 查询必须优先考虑分区键,否则可能全表扫描。
  8. 【关键点 4】CQL 表设计需明确主键和聚类列,不同于关系表。
  9. 【易错点 1】误以为 CQL 完全等同于 SQL,忽视其分布式限制。
  10. 【易错点 2】在 CQL 中使用 WHERE 无分区键导致 ALLOW FILTERING,影响性能。
  11. 【易错点 3】忽略 Cassandra 的数据复制和一致性模型,将 SQL 的事务语义套用。