mysql编程资料(mysql在线编程)

本文目录一览:

MYSQL的概念

MySQL是一个关系型数据库管理系统,由瑞典 MySQL AB 公司开发,目前属于 Oracle 旗下公司。MySQL 最流行的关系型数据库管理系统,在 WEB 应用方面 MySQL 是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一。

MySQL 是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。MySQL 所使用的 SQL 语言是用于访问数据库的最常用标准化语言。MySQL 软件采用了双授权政策,它分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择 MySQL 作为网站数据库。由于其社区版的性能卓越,搭配 PHP 和 Apache 可组成良好的开发环境。

mysql的C API编程

MYSQL_OPT_READ_TIMEOUT 是 MySQL c api 客户端中用来设置读取超时时间的参数。在 MySQL 的官方文档中,该参数的描述是这样的:

MYSQL_OPT_READ_TIMEOUT (argument type: unsigned int *)The timeout in seconds for each attempt to read from the server. There are retries if necessary, so the total effective timeout value is three times the option value. You can set the value so that a lost connection can be detected earlier than the TCP/IPClose_Wait_Timeout value of 10 minutes.

也就是说在需要的时候,实际的超时时间会是设定值的 3 倍。但是实际测试后发现实际的超时时间和设置的超时时间一致。

而具体什么时候发生三倍超时,在文档中没有找到。所以对 MySQL 5.7.20 的源码进行了一些分析。

使用 GDB 调试代码找了实际与 mysql server 通信的代码,如下:

其中 vio_read() 函数中,使用 recv 和 poll 来读取报文和做读取超时。net_should_retry() 函数只有在发生 EINTR 时才会返回 true。从这段代码来看是符合测试结果的,并没有对读取进行三次重试。只有在读取操作被系统中断打断时才会重试,但是这个重试并没有次数限制。

从上面代码的分析可以看出,代码的逻辑和文档的描述不符。于是在一顿搜索后,找到了一个 MySQL 的 BUG(Bug #31163)。该 BUG 报告了在 MySQL 5.0 中,MySQL c api 读取的实际超时时间是设置的三倍,与现有文档描述相符。于是对 MySQL 5.0.96 的代码又进行分析。

同样使用 GDB 找到了通信部分的代码。这次找到了重试三次的代码,如下:

这个版本的 MySQL api 的读写超时是直接使用的 setsockopt 设置的。第一次循环,在 A 点发生了第一次超时(虽然注释写的非阻塞,但是客户端的连接始终是阻塞模式的)。然后在 B 点将该 socket 设置为阻塞模式,C 点这里重置 retry 次数。由于设置了 alarm 第二次以后的循环会直接进入 D 点的这个分支,并且判断循环次数。作为客户端时net-retry_count 始终是 1,所以重试了两次,共计进行了 3 次 vioread 后从 E 点退出函数。

由上面的分析可知,MySQL 文档对于该参数的描述已经过时,现在的 MYSQL_OPT_READ_TIMEOUT 并不会出现三倍超时的问题。而 Bug #31163 中的处理结果也是将文档中该参数的描述更新为实际读取超时时间是设定时间的三倍。也许是 MySQL 的维护者们在后续版本更新时忘记更新文档吧。

mysql是用什么语言写的?

mysql是用C++语言开发的。

Mysql作为大型数据库对于可靠性和并发性的要求较高,InnoDB作为默认的MySQL存储引擎。

C++擅长面向对象程序设计的同时,还可以进行基于过程的程序设计,C++不仅拥有计算机高效运行的实用性特征,同时还致力于提高大规模程序的编程质量与程序设计语言的问题描述能力。

扩展资料

MySQL关系型数据库于1998年1月发行第一个版本。它使用系统核心提供的多线程机制提供完全的多线程运行模式,提供了面向C、C++、Eiffel、Java、Perl、PHP、Python以及Tcl等编程语言的编程接口,支持多种字段类型并且提供了完整的操作符支持查询中的SELECT和WHERE操作。

在C++现有类的基础上可以声明新类型,这就是继承和重用的思想。通过继承和重用可以更有效地组织程序结构,明确类间关系,并且充分利用已有的类来完成更复杂、深入的开发。新定义的类为子类,成为派生类。它可以从父类那里继承所有非私有的属性和方法,作为自己的成员。

参考资料来源:百度百科-MySQL数据库

如何学好MySQL 数据库 求大牛们推荐学习资料,书籍 入门级 提高级 求分别列出来,感激不尽

你可以看看这本书《mysql数据库应用从入门到精通》,这本书共分为3篇。其中第一篇为MySQL数据库基础篇,内容包括数据库涉及到的基本概念、MySQL数据库的安装与配置。第二篇为标准SQL语句编程和应用篇,内容包括操作数据库对象、操作表对象、操作索引对象、操作视图对象、操作触发器对象和操作数据。第三篇为MySQL数据库管理篇,内容包括MySQL数据库的用户管理和权限管理、MySQL数据库的日志管理、MySQL数据库的性能优化和PowerDesigner数据库设计软件。

原创文章,作者:NC9QH,如若转载,请注明出处:https://www.506064.com/n/127966.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
NC9QH的头像NC9QH
上一篇 2024-10-03 23:24
下一篇 2024-10-03 23:24

相关推荐

  • Cesium中文API详解

    一、Cesium中文教程 Cesium中文教程是初学者入门的重要资料。教程的主要内容是Cesium三维地球平台的介绍、安装和基础使用方法。其中以Hello World程序为例,演示…

    编程 2024-12-03
  • C#学习路线详解

    一、基础语法学习 1、 了解C#语言基础结构,包括数据类型、循环结构、条件语句等基础知识。 using System; class Program { static void Ma…

    编程 2024-10-14
  • 学习Java设计模式,提高代码质量

    Java是一种现代化的编程语言,具有良好的跨平台性和灵活性,被广泛应用于企业级软件开发领域。而设计模式是一种通用的解决软件设计问题的思想,可以使得代码更加易于维护、升级和扩展。本文…

    编程 2024-12-01
  • cad图纸打开有两个窗口怎么关闭,cad打开图纸两个窗口怎么取消

    本文目录一览: 1、cad2014首次运行时总会多启动一个叫“Drawing1”的窗口,这个怎么去掉? 2、一个CAD图纸打开后出现二个窗口怎么弄回 3、我的CAD图同一界面出现两…

    编程 2024-11-18
  • JMeter获取当前日期的多个方法

    一、JMeter获取当前日期函数 JMeter提供了多个函数,可以用来获取当前日期、时间或日期时间。其中,对于获取当前日期的函数有以下几个: ${__time(yyyy-MM-dd…

    编程 2024-12-10
  • java实习生,java实习生招聘

    本文目录一览: 1、北大青鸟设计培训:怎样做一名合格的Java实习生? 2、java实习生面试的时候一般会被问到什么问题? 3、北大青鸟设计培训:Java开发实习生快速成长的方法?…

    编程 2024-11-14
  • Java server开发指南

    Java是一种广泛使用的编程语言,应用领域非常广泛,其中包括服务器端开发。Java server开发是指利用Java语言来进行网站开发,即利用服务器端的技术生成动态的网页。Java…

    编程 2024-12-05
  • 跟踪时间的利器:Python Watch Time Clock

    Python语言已经成为数据科学界的有力工具之一,可以灵活地应用于各种场景中。而对于提高生产力而言,时间的计算和管理也是非常重要的。Python中常常用到time模块对时间进行操作…

    编程 2024-10-10
  • 使用Matplotlib绘图:从入门到精通

    介绍 Matplotlib是Python中最常用的数据可视化工具之一。本文将从入门到精通为您详细介绍Matplotlib的使用。 安装 首先,确认您的电脑已经安装了Python。然…

    编程 2024-11-09
  • Python是一门优秀的编程语言

    Python是一门高级编程语言,由荷兰程序员Guido van Rossum于1989年默默开发。 Python于1994年被发布,受到了程序员们的热烈欢迎。Python一直处于稳…

    编程 2024-10-04

发表回复

登录后才能评论