pan*_*ang 5 python mysql sql sqlalchemy
我为 mysql 表创建一个 uniq 索引和一个复合索引:
UNIQUE KEY `uniq_idx_on_source` (`id`,`hour`,`platform`,`type`,`first_level`(60),`second_level`(120)),
KEY `idx_on_source` (`id`,`hour`,`type`)
Run Code Online (Sandbox Code Playgroud)
Uniq索引是为了防止重复数据存储mysql,而复合索引是为了提高查询性能。
但是当我查询时sql将使用uniq索引。
解释结果:
idx_on_source我希望不使用索引uniq_idx_on_source:
我找到了一个答案如下:
但这对我不起作用!
我的代码:
db.session.query(Source)
.with_hint(Source, 'USE INDEX (idx_on_source)')\
.filter(hour >= :begin).all()
Run Code Online (Sandbox Code Playgroud)
我通过方法输出sql str():
str(db.session.query(Source)
.with_hint(Source, 'USE INDEX (idx_on_source)')\
.filter(hour >= :begin))
Run Code Online (Sandbox Code Playgroud)
输出:
'SELECT source.id AS source_id,...... FROM source_stat \nWHERE source_stat.hour >= :hour'
但USE INDEX (idx_on_source)不输出!
有人有好主意吗?
| 归档时间: |
|
| 查看次数: |
2066 次 |
| 最近记录: |