【易客吧】_全网激活码总代_激活码商城

您现在的位置是:首页 > 热门资讯 > 正文

热门资讯

使用示例和代码片段展示 MySQL 定时任务的实际应用 (使用示例和代码的区别)

用户投稿2024-04-18热门资讯15

MySQL 定时任务是一种强大的工具,可用于自动化各种任务,例如:

  • 清除旧数据
  • 发送提醒
  • 执行备份
  • 更新统计信息

在本文中,我们将展示如何创建和使用 MySQL 定时任务来执行这些任务。

创建定时任务

要创建定时任务,请使用 CREATE EVENT 语句。该语句的语法如下:

CREATE EVENT event_nameON SCHEDULE scheduleDOsql_statement;
其中: 使用示例和代码片段展示 MySQL 定时任务的实际应用 (使用示例和代码的区别) 第1张 event_name 是定时任务的名称。 schedule 指定定时任务的执行时间表。 sql_statement 是要在定时任务执行时运行的 SQL 语句。

示例

以下示例创建一个名为 cleanup_old_data 的定时任务,该任务将在每天凌晨 1:00 运行,删除 30 天前的所有旧数据:

CREATE EVENT cleanup_old_dataON SCHEDULE EVERY 1 DAY AT '01:00:00'DODELETE FROM table_name WHERE date_column < DATE_SUB(NOW(), INTERVAL 30 DAY);

使用定时任务

一旦创建了定时任务,就可以使用 SHOW EVENTS 语句查看其状态。该语句的语法如下:

SHOW EVENTS;

示例

以下示例显示所有定时任务的状态:

SHOW EVENTS;
要启用或禁用定时任务,请使用

谈谈mongodb,mysql的区别和具体应用场景

(1)mysql数据库:属于关系型数据库。 在不同的引擎上有不同的存储方式。 查询语句是使用传统的sql语句,拥有较为成熟的体系,成熟度很高。 开源数据库的份额在不断增加,mysql的份额页在持续增长。 缺点就是在海量数据处理的时候效率会显著变慢。 (2)mongodb数据库:非关系型数据库(nosql),属于文档型数据库。 先解释一下文档的数据库,即可以存放xml、json、bson类型系那个的数据。 这些数据具备自述性(self-describing),呈现分层的树状数据结构。 数据结构由键值(key=>value)对组成。 存储方式:虚拟内存+持久化。 查询语句:是独特的mongodb的查询方式。 适合场景:事件的记录,内容管理或者博客平台等等。 架构特点:可以通过副本集,以及分片来实现高可用。 数据处理:数据是存储在硬盘上的,只不过需要经常读取的数据会被加载到内存中,将数据存储在物理内存中,从而达到高速读写。 成熟度与广泛度:新兴数据库,成熟度较低,nosql数据库中最为接近关系型数据库,比较完善的db之一,适用人群不断在增长。 分析一下mysql和mongodb应用场景1.如果需要将mongodb作为后端db来代替mysql使用,即这里mysql与mongodb属于平行级别,那么,这样的使用可能有以下几种情况的考量:(1)mongodb所负责部分以文档形式存储,能够有较好的代码亲和性,json格式的直接写入方便。 (如日志之类)(2)从datamodels设计阶段就将原子性考虑于其中,无需事务之类的辅助。 开发用如nodejs之类的语言来进行开发,对开发比较方便。 (3)mongodb本身的failover机制,无需使用如mha之类的方式实现。 2.将mongodb作为类似redis,memcache来做缓存db,为mysql提供服务,或是后端日志收集分析。 考虑到mongodb属于nosql型数据库,sql语句与数据结构不如mysql那么亲和,也会有很多时候将mongodb做为辅助mysql而使用的类redismemcache之类的缓存db来使用。 亦或是仅作日志收集分析。

Visual Basic 6.0中ByVal和ByRef的区别和应用示例!optional和缺省时的区别和应用示例!

byref 是按地址传递参数,byval 是按值传递参数. byref 传的变量可以在过程中修改,并能返回修改结果. private i as long ,j as long public sub test(byref vi as long ,byval vj as long) vi: & vi vj: & vj vi=vi+1 vj=vj+1 vi: & vi vj: & vj end sub public sub test2() i=1 j=2 call test(i,j) i: & i j: & j end sub 输出结果应该是: vi:1 vj:2 vi:2 vj:3 i:2 j:2向过程传递参数 过程中的代码通常需要某些关于程序状态的信息才能完成它的工作。 信息包括在调用过程时传递到过程内的变量。 当将变量传递到过程时,称变量为参数。 参数的数据类型 过程的参数被缺省为具有 Variant 数据类型。 不过,也可以声明参数为其它数据类型。 例如,下面的函数接受一个字符串和一个整数: Function WhatsForLunch(WeekDay As String, Hour _ As Integer) As String 根据星期几和时间,返回午餐菜单。 If WeekDay = Friday then WhatsForLunch = Fish Else WhatsForLunch = Chicken End If If Hour > 4 Then WhatsForLunch = Too late End Function 详细信息 关于 Visual Basic 的数据类型,请参阅本章前面部分。 也可以在语言参考中查找指定的数据类型。 按值传递参数 按值传递参数时,传递的只是变量的副本。 如果过程改变了这个值,则所作变动只影响副本而不会影响变量本身。 用 ByVal 关键字指出参数是按值来传递的。 例如: Sub PostAccounts (ByVal intAcctNum as Integer) . . 这里放语句。 . End Sub 按地址传递参数 按地址传递参数使过程用变量的内存地址去访问实际变量的内容。 结果,将变量传递给过程时,通过过程可永远改变变量值。 按地址传递参数在 Visual Basic 中是缺省的。 如果给按地址传递参数指定数据类型,就必须将这种类型的值传给参数。 可以给参数传递一个表达式,而不是数据类型。 Visual Basic 计算表达式,如果可能的话,还会按要求的类型将值传递给参数。 把变量转换成表达式的最简单的方法就是把它放在括号内。 例如,为了把声明为整数的变量传递给过程,该过程以字符串为参数,则可以用下面的语句: Sub CallingProcedure () Dim intX As Integer intX = 12 * 3 Foo (intX) End Sub Sub Foo (Bar As String) MsgBox Bar Bar 的值为字符串‘ 36 ’。 End Sub 使用可选的参数 在过程的参数列表中列入 Optional 关键字,就可以指定过程的参数为可选的。 如果指定了可选参数,则参数表中此参数后面的其它参数也必是可选的,并且要用 Optional 关键字来声明。 下面两段示例代码假定有一个窗体,其内有一命令按钮和一列表框。 例如,这段代码提供所有可选参数: Dim strName As String Dim strAddress As String Sub ListText(Optional x As String, Optional y _ As String) x y End Sub Private Sub Command1_Click () strName = yourname Optional strAddress = 提供了两个参数。 Call ListText (strName, strAddress) End Sub 而下面的代码并未提供全部可选参数: Dim strName As String Dim varAddress As Variant Sub ListText (x As String, Optional y As Variant) x If Not IsMissing (y) Then y End If End Sub Private Sub Command1_Click () strName = yourname 未提供第二个参 数。 Call ListText (strName) End Sub 在未提供某个可选参数时,实际上将该参数作为具有 Empty 值的变体来赋值。 上例说明如何用 IsMissing 函数测试丢失的可选参数。 提供可选参数的缺省值 也可以给可选参数指定缺省值。 在下例中,如果未将可选参数传递到函数过程,则返回一个缺省值。 Sub ListText(x As String, Optional y As _ Integer = ) x y End Sub Private Sub Command1_Click () strName = yourname 未提供第二个参 数。 Call ListText (strName) 添加“yourname”和 “”。 End Sub 使用不定数量的参数 一般说来,过程调用中的参数个数应等于过程说明的参数个数。 可用 ParamArray 关键字指明,过程将接受任意个数的参数。 于是可以这样来编写计算总和的 Sum 函数: Dim x As Integer Dim y As Integer Dim intSum As Integer Sub Sum (ParamArray intNums ()) For Each x In intNums y = y + x Next x intSum = y End Sub Private Sub Command1_Click () Sum 1, 3, 5, 7, 8 intSum End Sub 用命名的参数创建简单语句 对许多内建函数、语句和方法,Visual Basic 提供了命名参数方法来快捷传递参数值。 对命名参数,通过给命名参数赋值,就可按任意次序提供任意多参数。 为此,键入命名参数,其后为冒号、等号和值 (MyArgument := SomeValue) ,可以按任意次序安排这些赋值,它们之间用逗号分开。 注意,下例中的参数顺序和所要参数的顺序相反: Function ListText (strName As String, Optional strAddress As String) strName strAddress End Sub Private Sub Command1_Click () ListText strAddress:=””, strName:=Your Name End Sub 如果过程有若干不必总要指定的可选参数,则上述内容更为有用。 确定对命名参数的支持 要确定哪一个函数、语句和方法支持命名参数,用“代码”窗口中的“AutoQuickInfo”功能,检查“对象浏览器”,或者参阅语言参考。 使用命名参数时要注意以下几点: 在 Visual Basic (VB) 对象库中的对象的方法不支持命名参数。 而 Visual Basic for applications (VBA) 对象库中的所有的语言关键字都支持命名的参数。 在语法中,命名参数是用粗体和斜体字表示的。 所有其它参数只用斜体字表示。 重点 使用命名参数时不能省略所需参数的输入。 可以只省略可选参数。 对于 Visual Basic (VB) 和 Visual Basic for applications (VBA) 对象库,“对象浏览器”对话框将可选参数用方括号 [ ] 括起来。 详细信息 请参阅语言参考中的 ByVal、ByRef、Optional 和 ParamArray。

MySQL与Redis数据库连接池介绍(图示+源码+代码展示)

数据库连接池(Connection pooling)是程序启动时建立足够的数据库连接,并将这些连接组成一个连接池,由程序动态地对池中的连接进行申请,使用,释放。

简单的说:创建数据库连接是一个很耗时的操作,也容易对数据库造成安全隐患。所以,在程序初始化的时候,集中创建多个数据库连接,并把他们集中管理,供程序使用,可以保证较快的数据库读写速度,还更加安全可靠。

不使用数据库连接池

如果不使用数据库连接池,对于每一次SQL操作,都要走一遍下面完整的流程:

建立连接的三次握手(客户端与 MySQL服务器的连接基于TCP协议)

认证的三次我收

3.真正的SQL执行

的关闭

的四次握手关闭

可以看出来,为了执行一条SQL,需要进行大量的初始化与关闭操作

使用数据库连接池

如果使用数据库连接池,那么会 事先申请(初始化)好 相关的数据库连接,然后在之后的SQL操作中会复用这些数据库连接,操作结束之后数据库也不会断开连接,而是将数据库对象放回到数据库连接池中

资源重用:由于数据库连接得到重用,避免了频繁的创建、释放连接引起的性能开销,在减少系统消耗的基础上,另一方面也增进了系统运行环境的平稳性(减少内存碎片以及数据库临时进程/线程的数量)。

更快的系统响应速度:数据库连接池在初始化过程中,往往已经创建了若干数据库连接置于池中备用。 此时连接的初始化工作均已完成。对于业务请求处理而言,直接利用现有可用连接,避免了从数据库连接初始化和释放过程的开销,从而缩减了系统整体响应时间。

统一的连接管理,避免数据库连接泄露:在较为完备的数据库连接池实现中,可根据预先的连接占用超时设定,强制收回被占用连接。从而避免了常规数据库连接操作中可能出现的资源泄露。

如果说你的服务器CPU是4核i7的,连接池大小应该为((4*2)+1)=9

相关视频推荐

90分钟搞懂数据库连接池技术|linux后台开发

《tcp/ip详解卷一》: 150行代码拉开协议栈实现的篇章

学习地址:C/C++Linux服务器开发/后台架构师【零声教育】-学习视频教程-腾讯课堂

需要C/C++ Linux服务器架构师学习资料加qun 获取(资料包括 C/C++,Linux,golang技术,Nginx,ZeroMQ,MySQL,Redis,fastdfs,MongoDB,ZK,流媒体,CDN,P2P,K8S,Docker,TCP/IP,协程,DPDK,ffmpeg 等),免费分享

源码下载

下载方式:(Github中下载)

db_pool目录下有两个目录,mysql_pool目录为MySQL连接池代码,redis_pool为redis连接池代码

下面介绍mysql_pool

CDBConn解析

概念: 代表一个数据连接对象实例

相关成员:

m_pDBPool:该数据库连接对象所属的数据库连接池

构造函数: 绑定自己所属于哪个数据库连接池

Init()函数: 创建数据库连接句柄

CDBPool解析

概念:代表一个数据库连接池

相关成员:

Init()函数:常见指定数量的数据库实例句柄,然后添加到m_free_list中,供后面使用

GetDBConn()函数: 用于从空闲队列中返回可以使用的数据库连接句柄

RelDBConn()函数: 程序使用完该数据库句柄之后,将句柄放回到空闲队列中

测试之前,将代码中的数据库地址、端口、账号密码等改为自己的(代码中有好几处)

进入MySQL, 创建mysql_pool_test数据库

进入到mysql_pool目录下, 创建一个build目录并进入 :

然后输入如下的命令进行编译

之后就会在目录下生成如下的可执行文件

输入如下两条命令进行测试: 可以看到不使用数据库连接池,整个操作耗时4秒左右;使用连接池之后,整个操作耗时2秒左右,提升了一倍

源码下载

下面介绍redis_pool

测试

进入到redis_pool目录下, 创建一个build目录并进入 :

然后输入如下的命令进行编译

之后就会在目录下生成如下的可执行文件

输入如下的命令进行测试: 可以看到不使用数据库连接池,整个操作耗时182ms;使用连接池之后,整个操作耗时21ms,提升了很多

进入redis,可以看到我们新建的key:

若对本页面资源感兴趣,请点击下方或右方图片,注册登录后

搜索本页相关的【资源名】【软件名】【功能词】或有关的关键词,即可找到您想要的资源

如有其他疑问,请咨询右下角【在线客服】,谢谢支持!

使用示例和代码片段展示 MySQL 定时任务的实际应用 (使用示例和代码的区别) 第2张

发表评论

评论列表

  • 这篇文章还没有收到评论,赶紧来抢沙发吧~
欢迎你第一次访问网站!