`
orcl_zhang
  • 浏览: 243316 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

USE INDEX with Active Record finders(转)

阅读更多
可以通过强制指定index的方法优化find
MySQL doesn’t always pick the right index for your queries. Hence, sometimes you must tell it which index to use. Consider the example :

Activity.all(:conditions => ['created_at >= ? AND country_id = ?', 10.days.ago, 79])
Running EXPLAIN on the above query :

EXPLAIN SELECT * FROM `activities` WHERE (created_at >= '2009-07-27 12:58:44' AND country_id = 79);

Possible keys : index_activities_on_created_at,index_activities_on_created_at_and_country_id
Using the key : index_activities_on_created_at
As you can see, even though the table has index on both the fields involved in the query – index_activities_on_created_at_and_country_id, MySQL still uses index_activities_on_created_at. You can explicitly ask MySQL to use the index you want by supplying USE INDEX(http://dev.mysql.com/doc/refman/5.1/en/index-hints.html)

SELECT * FROM `activities` USE INDEX(index_activities_on_created_at_and_country_id)
  WHERE (created_at >= '2009-07-27 12:58:44' AND country_id = 79);
Active Record does not have any finder option to specify the index hint. Hence the solution is to exploit the :from option :

from = "#{quoted_table_name} USE INDEX(index_activities_on_created_at_and_country_id)"
Activity.all(:from => from,
             :conditions => ['created_at >= ? AND country_id = ?', 10.days.ago, 79])
分享到:
评论

相关推荐

    finders

    "发现者",这个项目可能是一个关于Web开发的开源工具或框架,命名为"finders"。考虑到标签为"HTML",我们可以推测它可能与HTML相关的搜索、解析或者内容提取有关。在Web开发中,HTML(HyperText Markup Language)是...

    nokogiri_bang_finders:将 XML 查找器添加到 Nokogiri,如果未找到任何内容则引发

    nokogiri_bang_finders 这颗宝石说“Nokogiri,如果你找不到我想要的 XML,请大喊大叫。” 例如: doc = Nokogiri :: XML ( ...# with nokogiri_bang_finders doc . at! ( 'robot' ) . content # Nokogiri::XML

    ARIA-2.7.5.exe

    200, SICK LMS-100, and Hokuyo URG 04-LX laser-range finders, control of the pan-tilt-zoom camera or pan-tilt unit, Pioneer Gripper and Arm, and more. (Some other devices are supported by separate ...

    finders_keepers:免费项目列表变得容易

    寻找者守护者背景和概述Finders Keepers是一个利用MERN的网络应用程序,该应用程序允许用户发布免费赠品,供其他人领取。 拥有帐户的用户可以创建他们想要免费赠送的物品图片的帖子。 因果用户(没有帐户的用户)将...

    【OpenCV】全景拼接_多张图像拼接(stitching_detailed)

    版本号:OpenCV-4.1.1、opencv_contrib-4.1.1、Visual Studio 2015。 基于OpenCV4.1.1帮助文档内Examples的stitching_detail.cpp改编。 包括提取特征点、特征点匹配、特征点提纯、预估相机参数、全面细化相机参数、...

    python3.6.5参考手册 chm

    index modules | next | Python » 3.6.5 Documentation » Python Documentation contents What’s New in Python What’s New In Python 3.6 Summary – Release highlights New Features PEP 498: Formatted ...

    Ruby-ActiveAttr一组模块让用户可以更方便地创建普通带功能的Ruby模型

    8. **Finders**:虽然`ActiveAttr`不像ActiveRecord那样有完整的查询接口,但它提供了基础的查找方法,如`find`和`find_by`。 在`active_attr-master`这个压缩包中,通常会包含`ActiveAttr`库的源码文件,包括`.rb`...

    magento-finder:Magento Finder 扩展了 Symfony Finder 组件并查找 Magento 模块; 模型、控制器、助手等; 重写、cron 作业和事件声明等等

    magento-finder ##注意:此工具目前正在开发中 Magento Finder 扩展了 Symfony Finder 组件并查找特殊的 Magento 文件和目录,这些文件和目录可以是: 模块; 模型、控制器、助手等。 更进一步,它会在模块或...

    PyPI 官网下载 | django-libsass-0.1.tar.gz

    在Python的世界里,PyPI(Python Package Index)是官方的第三方Python库分发平台,它为开发者提供了发布、查找和安装Python软件包的便利。"django-libsass-0.1.tar.gz" 是一个从PyPI官网下载的资源,它属于Python库...

    Python库 | django-sass-processor-0.4.4.tar.gz

    然后在项目的 `settings.py` 中进行配置,将 `django_sass_processor` 添加到 `INSTALLED_APPS` 列表中,并设置 `STATICFILES_FINDERS` 包含 `SassFinder`: ```python INSTALLED_APPS = [ # ... 'django_sass_...

    bangoo:Bangoo是基于Django的内容管理系统

    班古Bangoo是Django之上的内容管理系统。安装从INSTALLED_APPS及其相关的所有内容(例如: urls.py import)中删除...FINDERS设置为: STATICFILES_FINDERS = ( 'bangoo.theming.staticfiles.finders.FileSystemFind

    Python库 | django-sass-processor-0.8.2.tar.gz

    'django.contrib.staticfiles.finders.AppDirectoriesFinder', 'sass_processor.finders.CssFinder', ] SASS_PROCESSOR_ROOT = os.path.join(BASE_DIR, 'static') SASS_PROCESSOR_INCLUDE_DIRS = ['path/to/your/...

    PyPI 官网下载 | django_manifest_loader-1.0.0-py3-none-any.whl

    在Python的开发环境中,PyPI(Python Package Index)是最重要的资源库,它提供了大量的第三方Python模块和库,方便开发者下载和安装。`django_manifest_loader`是一个在PyPI上发布的Python库,专门用于解决Django...

    aes-finder, 在运行过程中,用于查找AES密钥的实用程序.zip

    aes-finder, 在运行过程中,用于查找AES密钥的实用程序 AES查找器在运行进程内存中查找AES键的工具。 适用于 128,192和 256-bit 键。用法在 Visual Studio 2013中打开 aes-finder.sln 解决方案以编译源代码。...

    django-bower:在Django项目中使用Bower的简单方法

    安装安装django-bower软件包: pip install django-bower 在您的设置中将django-bower添加到INSTALLED_APPS: 'djangobower' , 将staticfinder添加到STATICFILES_FINDERS: 'djangobower.finders.BowerFinder' , ...

    第11讲.2.4立体视觉(激光雷达)1

    7. Range finders:Range finders是一种基于激光雷达的测距设备,能够获取物体的距离信息。 8. Tightly controlled domains:Tightly controlled domains是一种应用立体视觉(激光雷达)技术的领域,例如工业机器人...

    Django中如何使用sass的方法步骤

    'django.contrib.staticfiles.finders.AppDirectoriesFinder', 'sass_processor.finders.CssFinder', ] # Django Sass 编译后 CSS 的存放位置 SASS_PROCESSOR_ROOT = os.path.join(BASE_DIR, 'static', 'css')...

Global site tag (gtag.js) - Google Analytics