我是使用firebird的新手。我有 3 张桌子。
对于T_TABLE1,结构如下所示:
对于T_TABLE2,结构如下所示:
对于T_TABLE3的结构是这样的:
主键是T_TABLE1到TBL1_ID中T_TABLE2和TBL1_ID中T_TABLE3的ID。如何选择与这 3 个表的数据连接,我想使用索引进行最佳选择查询,但我不知道如何创建索引,因为我是使用 firebird 的新手,我想了解更多使用 firebird 的知识。希望我的解释清楚。
创建索引的语法记录在 Firebird 2.5 语言参考CREATE INDEX中,它还包含其他信息。
创建索引的语法是:
CREATE [UNIQUE] [ASC[ENDING] | [DESC[ENDING]] INDEX indexname
ON tablename
{ (<col> [, <col> ...]) | COMPUTED BY (expression) }
<col> ::= a column not of type ARRAY, BLOB or COMPUTED BY
因此,要在您身上创建(升序)索引,T_TABEL2.TBL1_ID
请执行以下操作:
CREATE INDEX ix_tabel2_tbl1_id ON T_TABEL2 (TBL1_ID)
但正如我今天早些时候评论的那样,如果此列上有外键,则没有必要,因为 Firebird 中的外键会自动获取索引(这同样适用于主键)。
从您的问题中不清楚您是否有外键,但我建议您创建它们而不是索引:它为您提供索引,并且最重要的是TBL1_ID
强制T_TABLE1
.
请记住,创建索引不会自动提高性能。例如,优化器可能会认为使用索引不值得努力(或者特定索引与查询无关)。