Sqlalchemy如何使用力量指数?

时间:2016-06-05 13:15:11

标签: 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`)

Uniq索引是为了防止重复数据存储mysql,以及复合索引来提高查询性能。

但是当我查询时,sql将使用uniq索引。

解释结果:

enter image description here

我希望使用索引idx_on_source而不是uniq_idx_on_source

我找到了如下答案:

  

SQLalchemy specify which index to use

但它对我不起作用!

我的代码:

db.session.query(Source)
          .with_hint(Source, 'USE INDEX (idx_on_source)')\
          .filter(hour >= :begin).all()

我按str()方法输出sql:

str(db.session.query(Source)
          .with_hint(Source, 'USE INDEX (idx_on_source)')\
          .filter(hour >= :begin))

输出:

  

' SELECT source.id AS source_id,...... FROM source_stat \ nWHERE source_stat.hour> =:hour'

USE INDEX (idx_on_source)没有输出!

任何人都有好主意?

0 个答案:

没有答案