27.3. 为MySQL添加新步骤
优质
小牛编辑
125浏览
2023-12-01
- 27.3.1. 步骤分析
- 27.3.2. 编写步骤
在MySQL中,你可以用C++定义一个步骤,在一个查询被发送到客户端之前访问和修改其中的数据。修改可以一行接一行地做,或者按照级别成组(GROUP)地做。
我们创建一个范例步骤来演示你可以做的。
此外,我们推荐你看一下mylua。通过它你可以用 LUA语言把运行时里的一个步骤加载到mysqld中。
27.3.1. 步骤分析
analyse([max_elements,[max_memory]])
这个步骤在sql/sql_analyse.cc定义,这个步骤检查你查询的结果,并且返回对此结果的一个分析:
max_elements (默认值 256) 是analyse注意到每列不同值的最高数目。analyse使用此 参数来检查是否最优化的列的类型是ENUM类型。
max_memory (默认值 8192) 是analyse在查找所有不同值时分配给每列的最大内存数。i
SELECT ... FROM ... WHERE ... PROCEDURE ANALYSE([max_elements,[max_memory]])
27.3.2. 编写步骤
当前来说,相关的文档只有源码。
检查下列文件可以获得关于步骤的所有信息:
sql/sql_analyse.cc
sql/procedure.h
sql/procedure.cc
sql/sql_select.cc
这是MySQL参考手册的翻译版本,关于MySQL参考手册,请访问dev.mysql.com。 原始参考手册为英文版,与英文版参考手册相比,本翻译版可能不是最新的。