热门标签 | HotTags
当前位置:  开发笔记 > 数据库 > 正文

[转]建立时间索引后,按照时间排序来获得列表的查询,速度增快了不少.

一个论坛中搜评论列表没创建时间索引前:总共其中排序取行0.06170.03810.0235使用了聚集索引创建索引后:0.006990.000360.0066

一个论坛中搜评论列表
没创建时间索引前: 总共   其中排序 取行
    0.0617     0.0381  0.0235 使用了聚集索引
创建索引后: 0.00699  0.00036  0.00663 使用了普通索引

全表搜评论列表
创建索引前 0.222  0.119539 0.103411使用了聚集索引
创建索引后: 0.00681  0.000349 0.006462使用了普通索引

具体一个论坛一个帖子全部回复列表
创建索引前 0.0160  0.11956  0.00409 使用了聚集索引
创建索引后: 0.0132  0.000924 0.0123  使用了普通索引

整体结论,建立了时间索引后,整个根据时间排序获得评论的速度增加了,当搜索的范围越小,
速度增加得越明显,当搜索到具体某一个帖子时,差异变小,但始终建立时间索引会更快.

另外发现,当你另外建立了时间索引,数据库会自动优化判断选择使用聚集索引还是普通的时间索引. 

使用索引的几点原则:
1、对小的数据表,使用索引并不能提高任何检索性能,因此不需对其创建索引
2、当用户要检索的字段的数据包含有很多数值或很多空值(null)时,为该字段创建索引,会大大提高检索效率。
3、当用户查询表中的数据时,如果查询结果包含的数据(行)较少,一般少于数据总数的25%时,使用索引会显著提高查询效率。反之,如果用户的查询操作,返回结果总是包含大量数据,那么索引的用处不大。
4、索引列在WHERE子句中应频繁使用。例如,在学生姓名字段上建了索引,但实际查询中并不是经常用姓名作为查询条件,该索引就没有发生作用。
5、先装数据,后建索引。对于大多数的表,总有一批初始数据需要装入。该原则是说,建立表后,先将这些初始数据装入表,然后再建索引,这样可以加快初始数据的录入。如果建表后就建索引,那么在输入初始数据时,每插入一个记录都要维护一次索引。当然,对于索引来说,早建和晚建都是允许的。
6、索引提交了数据检索的速度,但也降低了数据更新的速度。如果要对表中的数据进行大量更新时,最好先销毁索引,等数据更新完毕再创建索引,这样会提高效率。
7、索引要占用数据库空间。在设计数据库时,要把需要的索引空间考虑在内。
8、尽量把表和它的索引存放在不同的磁盘上,这样会提高查询速度。


推荐阅读
  • 使用R语言进行电力消耗时间序列预测:多项式回归与ARIMA模型的应用
    本文探讨了如何利用温度预测和时间序列分析技术,通过R语言中的多项式回归和ARIMA模型来预测电力消耗。文章详细介绍了数据处理、模型构建及预测结果的可视化。 ... [详细]
  • 本文介绍了如何使用JFreeChart库创建一个美观且功能丰富的环形图。通过设置主题、字体和颜色等属性,可以生成符合特定需求的图表。 ... [详细]
  • 解决ArcGIS中Shapefile图层空洞问题的方法
    本文介绍了一种有效的方法来修复ArcGIS中Shapefile图层存在的空洞问题。对于少量空洞,可以通过手动修补的方式解决;而对于大量空洞,则建议使用Geodatabase的拓扑关系进行批量修复。 ... [详细]
  • 解决Hive操作无响应问题:drop table和create table的处理方法
    本文详细介绍了在Hive中执行drop table和create table命令时遇到无响应的情况,并提供了完整的解决方案。通过调整MySQL字符集编码,确保Hive数据库与MySQL之间的兼容性,从而有效解决问题。 ... [详细]
  • 深入解析Spring Cloud微服务架构与分布式系统实战
    本文详细介绍了Spring Cloud在微服务架构和分布式系统中的应用,结合实际案例和最新技术,帮助读者全面掌握微服务的实现与优化。 ... [详细]
  • 本文探讨了现代分布式架构的多样性,包括高并发、多活数据中心、容器化、微服务、高可用性和弹性架构等,并介绍了与这些架构相关的重要管理技术,如DevOps、应用监控和自动化运维。文章还深入分析了分布式系统的核心概念、主要用途及类型,同时对比了单体应用与分布式服务化的优缺点。 ... [详细]
  • 如何从python读取sql[mysql基础教程]
    从python读取sql的方法:1、利用python内置的open函数读入sql文件;2、利用第三方库pymysql中的connect函数连接mysql服务器;3、利用第三方库pa ... [详细]
  • TortoiseSVN与VisualSVN Server的安装及基本操作指南
    本文详细介绍了如何安装VisualSVN Server以及TortoiseSVN客户端,并提供了基本的操作步骤,包括配置仓库、用户管理及权限设置等关键环节。 ... [详细]
  • Linux环境下MySQL查询结果导出及ERROR 1290 (HY000) 解决方案
    本文详细解析了在Linux系统中使用MySQL导出查询结果时遇到的ERROR 1290 (HY000)错误,并提供了有效的解决策略。通过调整配置文件或更改导出路径,可以轻松解决这一常见问题。 ... [详细]
  • Servlet过滤器入门:实现与配置
    本文介绍如何在Java Web应用中实现和配置Servlet过滤器,通过实现`javax.servlet.Filter`接口来创建过滤器,并详细说明其在web.xml文件中的配置方法。 ... [详细]
  • 本文详细介绍了会计学专业的课程设置,包括基础课程、核心课程及选修课程,旨在为学生提供全面的学习指南,帮助他们更好地规划学业。 ... [详细]
  • 本文探讨了天才与疯子之间的微妙界限,介绍了如何利用巨人的工具提升自我,以及如何通过科学决策、数据洞察和智慧的尺度来指导我们的生活和工作。 ... [详细]
  • 本文详细介绍了Java的安装、配置、运行流程以及有效的学习方法,旨在帮助初学者快速上手Java编程。 ... [详细]
  • 深入理解小程序中的Picker组件
    Picker组件是一种从屏幕底部弹出的滚动选择器,支持多种选择模式,包括普通选择器、多列选择器、时间选择器、日期选择器和省市区选择器。本文将详细介绍Picker的各种属性及其应用场景。 ... [详细]
  • 深入解析Spring Boot自动配置机制
    本文旨在深入探讨Spring Boot的自动配置机制,特别是如何利用配置文件进行有效的设置。通过实例分析,如Http编码自动配置,我们将揭示配置项的具体作用及其背后的实现逻辑。 ... [详细]
author-avatar
wwwmanbj_796_897
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有