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