假设我有两个表,我们称之为values和candlesticks。我可以用三种不同的方法计算烛台的值:
insert on duplicate key update插入新值之前在触发器中insert into candlesticks ... select from values。values,计算、更新或添加新烛台。我想分析一下这个方法将如何影响对values和candlesticks的查询。到目前为止,我想出的最好的事情是编写一个脚本,它将放置新的values,另一个脚本将发出两个典型的查询(一个用于candlesticks,一个用于values),并使用手册中描述的performance_schema来收集有关查询的数据并绘制它。
这似乎是一个应该通过某种工具解决的问题。是否有这样一个工具(免费)可以监视某些查询性能随时间的推移?也许还有其他方法来解决这个问题?
发布于 2018-01-26 16:19:31
是否有这样的工具可以监视某些查询性能随时间的推移?
有几种解决方案,如Spotlight、SolorWinds、solutions (红色门)。
发布于 2018-01-26 18:04:59
如果您有好的索引,并且每秒执行的查询少于100个,那么影响就足够小,因此您的问题并不重要。
否则,请提供详细的-- SHOW CREATE TABLE和查询,在相关的内部事务。澄清:“定期”=每小时一次?每毫秒一次?"Poll“==读了整张桌子?如果是的话,桌子有多大?
现有的分析工具倾向于说,所有的时间都是“发送数据”,这不是一个有用的线索。
我喜欢在long_query_time = 1中使用慢速日志。一天后,用pt-query-digest进行总结。这将说明哪个查询是“最糟糕的”。专注于这一点将(经常)在总体表现上产生很大的影响。
如何衡量索引的存在/缺失?测量旋转传动与SSD之间的差异?这些对性能的影响往往远远大于一个竞争线程,该线程可能同时请求CPU、I/O或互斥对象,也可能不请求。
我不认为performance_schema中有任何有用的数据可以区分TRIGGER's的影响。
Slowlog帮助识别“最糟糕”的查询,但没有给出它们为什么“糟糕”的线索。
捕捉和绘制慢速日志中的趋势--其中一些可以在各种工具中使用,例如Monyog和MEM。
https://dba.stackexchange.com/questions/196339
复制相似问题