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

如何理解影响结果集

 
阅读更多

实战范例
  某游戏社区要显示用户动态,
select * from userfeed where uid=$uid order by lastlogin desc limit 0,30;

   初期默认以uid 为索引字段, 查询为命中所有uid=$uid 的结果按照lastlogin 排序。 当用户行为非常频 繁时,该SQL 索引命中影响结果集有数百乃至数千条记录。查询效率超 过0.01 秒,并发较大时数据库压力较大。 解决方案:将索引改为 uid+lastlogin 复合索引,索引直接命中影响结果 集30 条,查询效率提高了10 倍,平均在0.001 秒,数据库压力骤降。 影响结果集并不是说数据查询出来的结果数或操作影响的结果数,而是查询条件的索引所命中的结果数。 

实战范例 

  某游戏数据库使用了innodb,innodb 是行级锁,理论上很少存在锁表情 况。出现了一个SQL 语句(delete from tabname where xid=…),这个SQL 非常用SQL,仅在特定情况下出现,每天出现频繁度不高(一天仅10 次 左右),数据表容量百万级,但是这个xid 未建立索引,于是悲惨的事情 发生了,当执行这条delete 的时候,真正删除的记录非常少,也许一到 两条,也许一条都没有;但是!由于这个xid 未建立索引,delete 操作时 遍历全表记录,全表被delete 操作锁定,select 操作全部被locked,由于 百万条记录遍历时间较长,期间大量select 被阻塞,数据库连接过多崩溃。 这种非高发请求,操作目标很少的SQL,因未使用索引,连带导致整个 数据库的查询阻塞,需要极大提高警觉。



 总结:  影响结果集是搜索条件索引命中的结果集,而非输出和操作的结果集。  影响结果集越趋近于实际输出或操作的目标结果集,索引效率越高。  请注意,我这里永远不会讲关于外键和join 的优化,因为在我们的体系里, 这是根本不允许的! 架构优化部分会解释为什么。

分享到:
评论

相关推荐

    Mysql_性能优化教程(内部材料)_07_10.docx1

    在实践中,理解影响结果集的含义至关重要,它不是查询返回的行数,而是索引匹配到的行数。例如,删除特定条件数据的SQL(delete from tabname where xid=…)可能会因为索引不当导致大量行被扫描,影响数据库性能。...

    Spring+MyBatis

    在实际的数据库优化过程中,理解影响结果集的概念至关重要。影响结果集是指在查询过程中,索引与查询条件相互作用后影响查询结果集大小的中间数据。如果查询条件与索引完全匹配,那么查询可以直接利用索引来高效获取...

    Mysql性能优化教程.doc

    - 正确理解影响结果集对于优化查询至关重要。 - **获取影响结果集**: - 通过EXPLAIN语句分析查询计划。 - 利用EXPLAIN的结果判断哪些部分可能导致较高的查询开销。 - **解读影响结果集**: - 分析查询计划中的...

    Mysql性能优化教程

    理解影响结果集的概念对于优化查询语句非常关键。影响结果集是指通过数据库查询返回的数据集大小和数量。在获取和解读影响结果集时,需要考虑数据如何被查询和返回,以避免不必要的数据处理和传输,从而减少数据库的...

    Mysql_性能优化教程

    **1.5 如何理解影响结果集** - **定义**: 影响结果集是指查询过程中产生的中间结果。 - **影响因素**: 查询条件与索引之间的匹配程度决定了影响结果集的大小。 - **案例**: 在复合索引(area+sex+lastlogin)的支持下...

    2020法研杯阅读理解数据集.zip

    数据集的质量和规模直接影响到模型的训练效果和最终性能,因此,"2020法研杯阅读理解数据集"的创建者可能已经确保了数据的质量,包括数据的完整性、一致性以及标注的准确性。 【压缩包子文件的文件名称列表】"阅读...

    Visdrone数据集YOLOv5模型训练结果,VisDrone-训练结果-yolov5-版本5.zip

    通过比较YOLOv5s和YOLOv5m在相同数据集上的表现,我们可以深入理解模型规模对性能的影响,以及在实际应用中如何权衡速度与精度。同时,提供的测试视频为评估模型的实际效能提供了宝贵素材。对于研究者和开发者来说,...

    论文研究 - 土壤属性的不同特征选择影响土壤数据集的聚类性能

    在土壤数据聚类的应用中,对聚类性能对不同特征子集的响应缺乏很好的理解。 在本文中,我们分析了在土壤数据集的不同特征子集条件下,k均值,模糊c均值和谱聚类算法之间的性能差异。 实验结果表明,谱聚类算法的...

    算法的python实现代码、测试数据集及结果

    - **参数选择**:聚类算法往往需要调整超参数,如K-Means中的聚类数量k,选择不当会影响结果。 - **算法局限性**:某些算法可能对特定类型的数据集表现不佳,例如K-Means假设数据分布为球形,而DBSCAN则更适用于处理...

    酒精影响研究数据集.zip

    《酒精影响研究数据集》是...总而言之,《酒精影响研究数据集》提供了宝贵的科研素材,能够促进我们对酒精与人类认知功能之间关系的深入理解,有助于推动相关领域的科学研究,并为制定更加科学的酒精管控策略提供依据。

    复现研究:更换数据集对实验效果的影响分析

    使用场景及目标:帮助研究人员更好地理解数据集对最终结果的影响,在进行新课题探究时能有效选取最合适的训练与测试数据集。 其他说明:本文提供的案例和结论对于机器学习、深度学习等需要大规模数据支撑的科研活动...

    邻域粗糙集属性约简_粗糙集_邻域粗糙集_邻域属性约简

    《邻域粗糙集属性约简:理解与应用》 粗糙集理论是计算机科学与人工智能领域的一个重要分支,它提供了一种处理不确定性和不完整性信息的工具。本文将深入探讨邻域粗糙集及其在属性约简中的应用,同时结合具体的数据...

    Kaggle交通检测数据集测试集

    描述中的 "Kaggle交通检测数据集测试集" 确认了这个数据集是用于测试模型性能的,意味着它包含已知结果,可以用来评估模型预测的准确度。 标签 "文档资料 数据集" 指出这份资源不仅包括数据,还可能包含相关的文档...

    林业害虫数据集(该数据集分为训练集,验证集和测试集) 注:由于文件太大,分为两次上传,该文件是验证集和测试集

    在模型训练完成后,将模型应用于测试集,可以得到模型在未知数据上的预测结果,从而衡量模型的实际应用价值。 这个数据集的结构符合机器学习的标准流程,即通过训练、验证和测试来构建和评估模型。对于开发者来说,...

    通用数据处理系统结果集展现模块的分析与设计.pdf

    结果集展现模块是系统的关键组成部分,因为它直接关系到数据如何被企业人员所理解并用于决策。 两种结果集展现方案中,基于浏览器的页面展现方案可以让用户通过Web界面实时查看数据,这种展现方式适用于普通用户和...

    squad-v1.1数据集.rar

    总的来说,Squad-v1.1数据集是推动机器阅读理解技术发展的重要推手,它为研究者提供了丰富的实验素材,促进了模型的创新与优化,对于理解和生成自然语言的AI系统的进步具有深远影响。无论是初学者还是资深研究者,都...

    数据集_数据集;损伤_数据集_

    8. 结果可视化:通过图表展示模型的预测结果,便于理解和解释。 总之,"数据集_数据集;损伤_数据集_"是一个专注于损伤研究的数据资源,可能涵盖了多领域、多维度的数据,对于从事相关领域的研究人员和工程师来说,...

Global site tag (gtag.js) - Google Analytics