MySQL性能优化-group by语句优化
MySQL在处理group by语句时,最常规的方式是扫描整个表,然后创建一个临时表,使用临时表存储分组和聚合函数的值。但是在一些特别的场景下,通过索引可以避免创建临时表,以获取更好的性能。group by 子句使用索引的先决条件是grou...继续阅读
MySQL在处理group by语句时,最常规的方式是扫描整个表,然后创建一个临时表,使用临时表存储分组和聚合函数的值。但是在一些特别的场景下,通过索引可以避免创建临时表,以获取更好的性能。group by 子句使用索引的先决条件是grou...继续阅读
python提供了跨语言调用动态库的能力,比如用C语言写了一个动态库,在python脚本中可以很方便地调用C语言动态库中的函数。下面通过一个简单示例进行介绍。python版本:Python 3.4.81. 编写一个c/c++函数一个非常简单...继续阅读
MySQL全表扫描在大多数场景下性能都是非常低下的,尤其在表数据量特别大的情况下,全表扫描会耗尽数据库资源,严重时会导致数据库服务不可用,数据库崩溃,因此,业务SQL在发布上线前,应当检查是否会导致全表扫描。1. MySQL全表扫描的原因通...继续阅读
今天偶然看到一篇文章,讲的是一个开源的markdown渲染工具Markdeep,它能够将Markdown格式的文本渲染出来,并在网页上展示。另外,Markdeep还支持非markdown格式的纯文本渲染,以及额外支持图表、数学方程等扩展能力...继续阅读
个人网站已经运行了两个多月,这几天看访问记录,总会发现一些恶意访问。因为网站是动态的php网站,攻击者会尝试攻击php漏洞,或者使用SQL注入,攻击者的IP来自世界各地,防不胜防,真的很讨厌,在此记录一下他们经常使用的攻击方法。1. Thi...继续阅读
mysql 官方文档行构造器表达式优化(Row Constructor Expression Optimization)这一节里面,对行构造表达式及其优化进行了介绍,因为用的不多,也没太关注过。但是看了几个示例,发现有一些逻辑还是与预想的不...继续阅读
函数调用在MySQL内部分为确定性函数和不确定性函数。如果一个函数,对于给定的固定参数值,多次调用,返回的结果值不同,那么这样的函数就称之为不确定性函数,比如RAND(), UUID()。返回的结果值相同,则为确定性函数,比如POW(1,2...继续阅读
eq_range_index_dive_limit 参数:作用范围:global session默认值:200最小值:0最大值:4294967295eq_range_index_dive_limit 参数提供了一个阈值,优化器在估算扫描行...继续阅读
MySQL在处理join查询时,遍历驱动表的记录,把驱动表的记录传递给被驱动表,然后根据join连接条件进行匹配。优化器通常会将更小的表作为驱动表,通过在驱动表上做额外的where条件过滤(Condition Filtering),能够将驱...继续阅读
Anemometer是一款开源的MySQL慢查询可视化工具,它使用pt-query-digest工具解析MySQL慢查询日志,将解析结果显示在Web页面上,提供丰富的查询方式,用户在页面上能够更加方便地查看MySQL慢查询信息。本文简单介绍...继续阅读