“简单”如果你知道一点点的C + +。gydF4y2Ba

MySQL是很出名的,易于使用,易于安装,易于配置和易于维护。如果有更多的东西,你想让MySQL做什么?你将如何将一些新奇特的处理库集成到MySQL而无需重新创建纯SQL的复杂性?gydF4y2Ba

MySQL可加载的功能gydF4y2Ba的路要走。在这篇文章中,您将了解如何设置编译环境编译自己的MySQL插件加载到MySQL是一个函数。我们将实现一个函数gydF4y2BaULIDgydF4y2Ba发电机使用c++库gydF4y2BaChrisBove / ulidgydF4y2Ba。gydF4y2Ba

创建构建环境gydF4y2Ba

第一步是下载源代码MySQL /gydF4y2Baraybetapp ,然后提取tarball。gydF4y2Ba

接下来,我们需要为我们的新插件设置一个位置在源代码树。我们也可以抓住一个副本gydF4y2Ba图书馆的gydF4y2Ba中,我们将使用插件。gydF4y2Ba

现在我们需要创建两个文件。第一个文件gydF4y2BacmakegydF4y2Ba告知整个构建过程,它应该包括,和编译我们的插件。gydF4y2Ba

MYSQL_ADD_PLUGIN是CMake的宏定义我们的插件名称、主要插件的源代码文件,指定这是一个可加载的共享对象(所以)。gydF4y2Ba

我们需要创建第二个文件是我们的gydF4y2Ba实际的源代码gydF4y2Ba的插件。gydF4y2Ba

我们将进入更多的细节在这篇文章后面代码本身。现在,让我们继续把一切编译和工作。gydF4y2Ba

现在我们的代码树提取和插件代码已经准备好了,我们需要创建一个构建的位置。您可以构建源树中提取的,但这违背最佳实践。一旦进入构建目录,执行cmake针对源代码树。有一些辅助标志,你应该下载使用gydF4y2BaBoost库gydF4y2Ba和禁用功能,不需要编译一个插件。如果有任何基本库丢失,输出将会尽力让你知道命令来运行(apt /转/ yum)安装需要的库。gydF4y2Ba

Cmake现在完成,所有的初始检查看起来不错。时间来编译插件。我们不需要编译整个Percona MySQL服务器代码库。雷竞技下载官网gydF4y2Ba

成功!编译的插件。让我们加载到运行MySQL服务器,检查它的工作原理。gydF4y2Ba

更大的成功!我们的插件工作!gydF4y2Ba

理解插件gydF4y2Ba

现在我们的插件,我们倒带和理解正在发生的事情。下面的内容是我的tl,博士。如果你想要一个更详细的解释,请参阅文档。gydF4y2Ba

有三个函数内的代码,您需要定义:gydF4y2Ba

  • ulid——主要功能,要求每一行gydF4y2Ba
  • ulid_init——初的声明;用于验证数量的参数,和/或参数类型。gydF4y2Ba
  • ulid_deinit——最后的声明;通常是空的,除非你在_init分配额外的内存或其他结构。gydF4y2Ba

让我们看看这些功能实现:gydF4y2Ba

尽管所有的c++,您仍然需要具体化的函数名“C”可以查看它们。上述_init函数首先检查,要么是0或1的参数,奇怪的是,返回true,如果有一个错误。gydF4y2Ba

如果用户提供1参数,检查参数是一个整数。最后,告诉MySQL的最大长度,我们将返回的字符串值。gydF4y2Ba

主要功能。有内联注释来解释各种和部分代码。gydF4y2Ba

一些示例执行:gydF4y2Ba

结论gydF4y2Ba

MySQL的功能扩展到使用其他库提供了无尽的机会扩大MySQL的功能。如何编写一个函数,可以吗gydF4y2Ba发送电子邮件gydF4y2Ba吗?或gydF4y2Ba闪烁的LEDgydF4y2Ba吗?希望以上的解释和例子会引发一些你!gydF4y2Ba

上述ULID插件时,从一个想法gydF4y2Ba文章通过ShopifygydF4y2Ba,特别是# 6,提到移动到ULID UUID为更好的顺序插入的MySQL数据库。因为ULID是一个c++库,这提供了一个绝佳的机会来展示如何扩展到MySQL有原生sql ULID功能。gydF4y2Ba

寻找第二部分,我们在MySQL基准ULID !(* spolier *最好!)gydF4y2Ba

雷竞技下载官网Percona MySQL是最完整,分布稳定、可伸缩的、安全的MySQL开源解决方案,提供企业级的数据库环境最关键业务应用程序…和它的免费使用!gydF4y2Ba

raybetapp2下载

订阅gydF4y2Ba
通知的gydF4y2Ba
客人gydF4y2Ba

0gydF4y2Ba评论gydF4y2Ba
内联反馈gydF4y2Ba
查看所有评论gydF4y2Ba