SQLAlchemy:带有ForeignKey的列是否自动创建索引?
带ForeignKey的列是否自动创建索引? 或者我需要手动添加SQLAlchemy:带有ForeignKey的列是否自动创建索引?,sqlalchemy,Sqlalchemy,带ForeignKey的列是否自动创建索引? 或者我需要手动添加index=True some_field = Column(Integer, ForeignKey(SomeModel.id)) 谢谢 您确实需要指定index=True或显式创建index对象: Index('myindex',mytable.c.col1,mytable.c.col2,unique=True),它允许对索引的其他参数进行更多控制,例如名称和对多个列的支持 有关更多信息,请参阅。正如van的回答所示,您应该按照
index=True
some_field = Column(Integer, ForeignKey(SomeModel.id))
谢谢 您确实需要指定
index=True
或显式创建index
对象:Index('myindex',mytable.c.col1,mytable.c.col2,unique=True)
,它允许对索引的其他参数进行更多控制,例如名称和对多个列的支持
有关更多信息,请参阅。正如van的回答所示,您应该按照文档的指示明确添加索引 外键的实现是特定于数据库的,一些数据库(如MySQL)仍然会自动为foreignkey列创建索引,但其他数据库不会。见上文评论中的讨论 e、 g来自: MySQL要求外键列被索引;如果您创建一个 在给定列上具有外键约束但没有索引的表 创建索引
Sqlalchemy不会为您这样做,但mysql的Inno引擎会自动这样做。主键也是这样吗?@BerislavLopac:我相信大多数(如果不是全部的话)RDBMS会自动为主键创建索引。@van:Postgres不会为您创建外键索引,不像mysql的InnoDB引擎。@blong:看到这个答案了吗,其中包括: