草庐IT

query-optimization

全部标签

使用文件排序和临时的 MySQL 查询

我正在使用一个简单的MySQL查询,但由于使用了ORDERBY,性能真的很差。我不明白为什么MySQL使用文件排序和临时排序。我的查询是:EXPLAINSELECT*FROMEventsINNERJOINEventLogFilesONServerID=42ANDEvents.LogFileID=EventLogFiles.LogFileIDORDERBYReportIDDESC,TimeWrittenDESCLIMIT100这是EXPLAIN的输出:表事件结构表事件索引表事件日志文件结构表EventLogFiles索引更新:我尝试创建两个新索引,但它们仍然强制MySQL使用文件排序和临

mysql - 如果我杀死一个巨大的 MySQL InnoDb DELETE 查询会发生什么?

我目前正在运行一个DELETE查询,它花费的时间比预期的要长很多(已经10小时了!)。我想通过phpmyadmin进程终止它,但是我担心会发生什么。他自动回滚会不会也需要很多时间?当前查询状态显示“正在更新”。 最佳答案 这取决于您的查询目前所处的阶段。但通常回滚花费的时间大致相等,有时甚至比原始操作花费的时间更多。根据thisdocument的第2点,这不是真正可取的。此外,请务必验证您的MySQL版本,因为它有一个非常讨厌的错误,根据thisarticle在某些版本中删除/更新查询回滚。重新启动/终止MySQL进程无济于事,因为

mysql - SchemaSpyGUI : Failed to query Graphviz version information

我需要以html格式获取mySQL数据库模式输出,所以我开始使用SchemaSpyGUI来处理这个问题。现在,当我单击StartSchemaSpy时,它会生成以下错误:FailedtoqueryGraphvizversioninformationwith:dot-Vjava.io.IOException:Cannotrunprogram"dot":CreateProcesserror=2,ThesystemcannotfindthefilespecifiedUsingdatabaseproperties:[D:\Saurin\mySQL\schemaSpy_5.0.0.jar]/net

mysql - 对具有 3 亿行和每秒 50-100 个查询的 MySQL innoDB 表的查询随机减慢

我有一个MySQL数据库,其中有一个包含大约3亿行的InnoDB表。最多有10个连接的客户端每秒发送50-60个读取查询。几个月来一切都很顺利,直到最近,MySQL开始停滞,同时使用大量CPU(100%+。uptime命令显示值如15、12、15。)。需要500毫秒的查询现在需要几秒,从几十秒到几百秒。执行SHOWPROCESSLIST显示查询卡在Sendingdata状态。我无法弄清楚原因,感谢任何帮助。服务器英特尔(R)至强(R)CPUE5@2.40GHz|12个中央处理器|32GB内存我的.cnfinnodb_file_per_table=1tmp-table-size=32Mm

php - mysql_query() 返回返回 true,但 mysql_num_rows() 和 mysql_fetch_array() 给出“不是有效资源错误

这里是有问题的代码:来自index.php:require_once('includes/DbConnector.php');//Createanobject(instance)oftheDbConnector$connector=newDbConnector();//Executethequerytoretrievearticles$query1="SELECTid,titleFROMarticlesORDERBYidDESCLIMIT0,5";$result=$connector->query($query1);echo"vardump1:";var_dump($result);e

mysql - MySQL中的多线程?

MySQL操作是多线程的吗?具体来说,在运行选择时,选择(或连接)算法是否会产生多个线程一起运行?多线程会妨碍支持大量并发用户吗? 最佳答案 多个后台线程在MySQL服务器中运行。此外,每个数据库连接都由一个线程提供服务。MySQL中未实现并行查询(使用多线程进行选择)。MySQL可以支持“很多并发用户”。例如Facebook使用MySQL成功启动。 关于mysql-MySQL中的多线程?,我们在StackOverflow上找到一个类似的问题: https:/

sql - 带有 LIMIT 的 SQL UNION 是否优化掉不需要的查询?

假设我有一系列查询,这些查询的开销逐渐增加。我可以通过联合加入所有这些,但我只对前10个结果感兴趣,所以我添加了一个限制。查询看起来像这样:(SELECTcol1,col2FROMtableWHEREcolx='x')UNION(SELECTcol1,col2FROMtableWHEREcolxLIKE'%x%')UNION(SELECTcol1,col2FROMtableWHEREcolxLIKE'%x%'ANDunindexedcolLIKE'%y%')LIMIT10我知道这不能保证是第一个查询的前10个,如MySQL文档所述UNIONbydefaultproducesanunor

sql - Select * sql query vs Select specific columns sql query

这个问题在这里已经有了答案:关闭11年前。PossibleDuplicate:WhyisSELECT*consideredharmful?可能是一个数据库nOOb问题。我们的应用程序有一个如下表表WFField|Type|Null|Key|Default|Extra|+--------------------+-------------+------+-----+---------+----------------+|id|int(11)|NO|PRI|NULL|auto_increment||children|text|YES||NULL|||w_id|int(11)|YES||NU

MySQL日期差异迭代查询——精简查询或优化数据结构

作为介绍...我遇到了这个问题:Differencebetween2adjacentfields-Date-PHPMYSQL并试图实现目标,即使用纯MySQL遍历日期并获取差异。那里的另一个问题(SubtractingonerowofdatafromanotherinSQL)帮助我了解如何使用MySQL制作类似的东西。它没有解决问题,因为解决方案仍然取决于固定值或假设的数据顺序,但它确实帮助我理解了该方法。还有一个问题(Howtogetnext/previousrecordinMySQL?)的答案描述了如何从下一行/上一行获取值。它仍然依赖于一些固定值,但我学会了如何使用该技术。假设我

"slow queries log"中的 MYSQL 慢查询 - 但相同的查询手动运行速度非常快

如标题所述,在我的数据库中,各种查询出现在慢速查询日志中,但是当我手动运行它们时,它们运行速度提高了10倍。例如,一个相对简单的选择查询,有几个按参数排序的查询,在日志中通常需要100秒(是的,表非常大)......但是当我自己在同一个数据库上运行它时,它需要2秒左右。我检查了服务器的性能,当时似乎没有特别的减速或瓶颈,在那段时间也没有很多查询需要很长时间,只有一个。如何开始分析这样的问题?感谢帮助 最佳答案 当有问题的查询进入慢速日志时,您的系统可能更忙。如果rows_examined大于结果集,慢速日志可能表明索引没有被充分利用