二、MySQL

article/2025/11/5 4:08:29

MySQL是一个小型关系数据库管理系统。与其他大型数据库管理系统 (例如Oracle、DB2、SQL Server 等)相比,MySQL规模小、功能有限,但是它体积小、速度快、成本低,并且提供的功能对稍微复杂的应用来说已经够用,这些特性使得MySQL成为世界上 受欢迎的开放源代码数据库

2.1 客户端/服务器软件

主从式架构(Client-Server Model)或客户端/服务器(Client/Server)结 构(简称C/S结构),是一种网络架构,通常在该网络架构下的软件可分为客户端(Client)和服务器(Server)。服务器是整个应用系统资源的存储与管理中心,多个客户端则各自处理相应的功能,共同实现完整的应用。在客户端/服务器结构中,客户端用户的请求被传送到数据库服务器,数据库服务器进行处理后,将结果返回给用户,从而减少了网络数据传输量。用户使用应用程序时,首先启动客户端通过有关命令告知服务器进行连接以完成各种操作,而服务器则按照此请示提供相应的服务。每一个客户端软件的实例都可以向一个服务器或应用程序服务器发出请求。这种系统的特点就是,客户端和服务器程序不在同一台计算机上运行,这些客户端和服务器程序通常归属不同的计算机。主从式架构通过不同的途径应用于很多不同类型的应用程序,比如现在人们 熟悉的在因特网上使用的网页。例如,当顾客想要在当当网站上买书 的时候,电脑和网页浏览器就被当作一个客户端,同时组成当当网的电脑、数据库和应用程序就被当作服务器。当顾客的网页浏览器向当当网请求搜寻 数据库相关的图书时,当当网服务器从当当网的数据库中找 出所有该类型的 图书信息,结合成一个网页,再发送回顾客的浏览器。服务器一般使用高性 能的计算机,并配合使用不同类型的数据库,比如Oracle、Sybase或者是MySQL等;客户端需要安装专门的软件,比如专门开发的客户端工具浏览。

MySQL的不同版本

MySQL Community Server(社区版服务器)该版本完全免费,但是官方不提供技术支持。 MySQL Enterprise Server(企业版服务器)能够以很高的性价比为企业提供数据仓库应用,支持ACID 事物处理,提供完整的提交、回滚、崩溃恢复和行级锁定功能。但是该版本需付费使用,官方提供电话技术支持。 MySQL Cluster主要用于架设集群服务器,需要在社区版或企业版基础上使用。 MySQL 8.0是 新开发的稳定(GA)发布系列,是将执行新功能的系列,目前已经可以正常使用。 MySQL 8.0是比较稳定(GA)发布系列。只针对漏洞修复重新发 布,没有增加会影响稳定性的新功能。 MySQL 5.7是前一稳定(产品质量)发布系列。只针对严重漏洞 修复和安全修复重新发布,没有增加会影响该系列的重要功能。

MySQL的优势: (1) 速度:运行速度快。 (2) 价格:MySQL对多数个人来说是免费的。(3)容易使用:与其他大型数据库的设置和管理相比,其复杂程度较低,易于学习 (4) 可移植性:能够工作在众多不同的系统平台上,例如Windows、 Linux、UNIX、Mac OS等。 (5) 丰富的接口:提供了用于C、C++、Eiffel、Java、Perl、PHP、 Python、Ruby和Tcl等语言的 API。 (6) 支持查询语言:MySQL可以利用标准SQL语法和支持ODBC的应用程序。 (7) 安全性和连接性:十分灵活和安全的权限和密码系统,允许基于主机的验证。连接到服务器时,所有的密码传输均采用加密形式,从而保证 了密码安全。由于MySQL是网络化的,因此可以在因特网上的任何地方访 问,提高数据共享的效率。

MySQL 8.0的新特性和MySQL 5.7相比,MySQL 8.0的新特性主要包括以下几个方面。 1.数据字典 MySQL 8.0包含一个事务数据字典,用于存储有关数据库对象的信息。在MySQL 8.0之前的版本中,字典数据存储在元数据文件和非事务表中。 2.原子数据定义语句 MySQL 8.0支持原子数据定义语言(DDL)语句。此功能称为原子 DDL。原子DDL语句将与DDL操作关联的数据字典更新,存储引擎操作和 二进制日志写入组合到单个原子事务中。即使服务器在操作期间暂停,也会 提交事务,并将适用的更改保留到数据字典、存储引擎和二进制日志,或者 回滚事务。通过在MySQL 8.0中引入MySQL数据字典,可以实现原子 DDL。在早期的MySQL版本中,元数据存储在元数据文件、非事务性表和 存储引擎特定的字典中,需要中间提交。MySQL数据字典提供的集中式事 务元数据存储消除了这一障碍,使得将DDL语句操作重组为原子事务成为可能。

3.安全和账户管理 MySQL 8.0通过以下功能增强数据库的安全性,并在账户管理中实现更 高的DBA灵活性。 MySQL数据库的授权表统一为InnoDB(事务性)表。每个语句都是事务性的,并且对所有创建的用户都是成功或者回滚,发生任何错误都无效。如果成功,就将语句写入二进制日志;如果失败则不写入,发生回滚并且不 进行任何更改。 MySQL 8.0开始支持角色,角色可以看成是一些权限的集合,为用户赋予统一的角色,权限的修改直接通过角色来进行,无须为每个用户单独授 权。管理员可以创建和删除角色。 MySQL 8.0开始维护有关密码历史的信息,从而限制了以前密码的重 用。管理员可以在全局以及每个账户的基础上建立密码重用策略,从而在密 码更改时限制使用以前使用过的密码。 MySQL 8.0允许账户具有双密码,从而在多服务器系统中无缝地执行分 阶段密码更改,无须停机。

4.资源管理 MySQL现在支持资源组的创建和管理,并允许将服务器内运行的线程 分配给特定的资源组。资源组属性可以控制其资源,以启用或限制资源组中 线程的资源消耗。数据库管理员可以根据不同的工作负载修改这些属性。

5.InnoDB增强功能

MySQL 8.0增强了InnoDB的功能,主要表现如下: (1) MySQL 8.0将自增主键的计数器持久化到重做日志中。每次计数 器发生改变,都会将其写入重做日志中。如果数据库重启,InnoDB会根据重做日志中的信息来初始化计数器的内存值。为了尽量减小对系统性能的影响,计数器写入重做日志时,并不会马上刷新数据库系统。 (2) 如果索引损坏,InnoDB将索引损坏标志写入重做日志,从而使得 损坏标志安全。InnoDB还将内存中损坏标志数据写入每个检查点上的引擎专用系统表。在恢复期间,InnoDB从两个位置读取损坏标志并在将内存表和索引对象标记为损坏之前合并结果。 (3) 新的动态变量innodb_deadlock_detect可用于禁用死锁检测。在高 并发系统上,当许多线程等待同一个锁时,死锁检测会导致速度减慢,此时禁用死锁检测可能更有效。 6.字符集支持 默认字符集已经更改latin1为utf8mb4。该utf8mb4字符集有几个新的排 序规则,其中包括 utf8mb4_ja_0900_as_cs。 7.增加JSON功能 MySQL增强JSON功能主要表现在以下几个方面: (1) 添加了->>运算符,相当于调用JSON_UNQUOTE()的结果。 (2) 添加了两个JSON聚合函数JSON_ARRAYAGG()和 39JSON_OBJECTAGG()。JSON_ARRAYAGG()将列或表达式作为其参数,并 将结果聚合为单个JSON数组。JSON_OBJECTAGG()取两个列或表达式,将 其解释为键和值,并将结果作为单个JSON对象返回。 (3) 添加了JSON实用程序功能JSON_PRETTY(),JSON以易于阅读的 格式输出现有值;每个JSON对象成员或数组值都打印在一个单独的行上子对象或数组相对于其父对象是2个空格。 (4) 添加的JSON_MERGE_PATCH()可以合并符合RFC 7396标准的 JSON。在两个JSON对象上使用时,可以将它们合并为单个JSON对象。 8.数据类型支持 MySQL 8.0支持将表达式用作数据类型的默认值,包括BLOB、TEXT、 GEOMETRY和JSON数据类型,在以前的版本中是根本不会被分配默认值 的。

9.查询的优化 MySQL 8.0在查询方面的优化表现如下: (1) MySQL 8.0开始支持不可见索引。优化器根本不使用不可见索 引,但会以其他方式正常维护。默认情况下,索引是可见的。通过不可见索 引,数据库管理员可以检测索引对查询性能的影响,而不会进行破坏性的更 改。 (2) MySQL8.0开始支持降序索引。DESC在索引定义中不再被忽略, 而且会降序存储索引字段。

2.2MySQL的安装与配置

查看是否链接成功

 


http://chatgpt.dhexx.cn/article/AXfc1O6R.shtml

相关文章

数据库——多种方法导入Excel数据

文章目录 一、SQL Server导入Excel数据二、小技巧导入Excel数据三、使用Microsoft.ACE.OLEDB导入Excel数据四、手动添加一行数据五、手动添加多行数据五、解决类型不匹配致导入失败 一、SQL Server导入Excel数据 接下来就一直点击NEXT,直到完成 此时EXCEL的数据就被…

MySQL数据库简介

MySQL数据库简介 MySQL数据库是一种关系型数据库管理系统,是一种开源软件由瑞典MySQL AB公司开发,08年1月16日被Sun公司收购,09年Sun公司又被Oracle公司收购。 由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点&a…

Linux中的小型数据库 SQLite3

数据库(SQLite) 数据库后缀 .db(data base) gcc时加 -lsqlite3 这些是小希归纳的SQLite的一些重要语句,与示例应用 如果想要进一步学习,大家可以去网上搜 SQLite3的书籍

在JSTL 中使用小型数据库 SQLite

文章目录 一、Sqlite 数据库命令行工具的下载下载地址: 二、Sqlite 数据库 shell 工具的使用方法1.创建数据库2.Sqlite 数据库中表的创建:3.表中数据的插入4.Sqlite 数据库命令行的退出 三、ER图转化为数据库3.1建表3.2 向表中插入数据3.3 输出数据库中相…

实现一个小型数据库--记一次中级软件设计实作浮沉历程

说在前头:本篇文章主要是记录这次项目的过程,不全是贴代码,具体的程序移步这里,不喜欢的同学请轻喷。 事件起因:大三狗一枚,专业是软件应用。这学期的中级软件设计实作题目是实现一个小型的数据库&#xf…

用xml充当小型数据库案例

利用dom4j工具&#xff0c;将user.xml作为一个小型的数据库&#xff0c;然后控制台输入进行用户名与密码的匹配 /*user.xml文件放在src下*/ <?xml version"1.0" encoding"utf-8"?> <users><user id"001" name"ecri" …

数据库上机3(小型数据库应用程序开发)

注&#xff1a; ①各上机报告均根据《数据库技术与应用》课程的上机任务所做。 ②课程教材为 《数据库系统概论&#xff08;第五版&#xff09;》/王珊, 萨师煊编著/北京:高等教育出版社,2014 上机要求&#xff1a; 1、自学上层应用访问数据库的方式&#xff08;如ODBC、ADO、…

【SQL数据库设计】数据库设计【小型数据库】

数据库设计 需求 表结构字段类型、是否允许为null、是否有默认值索引设计数据库引擎的选择 根据产品原型分析&#xff0c;词性分析法&#xff0c;名词创建表或字段&#xff0c;动词表示关系。 数据存储&#xff1a;长期存储的数据&#xff0c; 1.主键&#xff1a;唯一、自增。 …

小型数据库系统开发作业

文章目录 题目数据库设计UI界面开发展示 原文链接&#xff1a;https://zhanghan.xyz/posts/60088/ 题目 自学上层应用访问数据库的方式&#xff08;如ODBC、ADO、JDBC、MySQLi或者其它&#xff09;&#xff0c;根据您使用的上层语言&#xff08;不限语言&#xff08;但要求与自…

关于Freesurfer提取annotation分区结构特征的命令mri_segstats

Freesurfer提供了基于分区模板提取常规特征&#xff08;area, volume, thickness, thicknessstd, meancurv, gauscurv, foldind, curvind&#xff09;的指令mris_anatomical_statsaparcstats2table还有可以提取从fMRI或DWI产生的结果以及一些特殊的结构特征&#xff08;如LGI&a…

Linux下使用Freesurfer的两种方法

文章目录 1. 直接在终端使用准备工作开始运行 2. 通过调用python文件使用 1. 直接在终端使用 重点&#xff1a;Freesurfer安装完成后&#xff0c;需要在相同的用户名下运行&#xff0c;并且所有文件数据也要放在此用户下 放在其他地方可能会因为没有权限而运行失败 官网流程说…

freesurfer入门-试图理解freesurfer输出的数据

因为一些原因想要学习使用freesurfer,虽然照着tutorial跑了起来但是完全不知道跑出来的是个啥,所以准备弄一篇文章记录每个部分是干啥的,此文为记录 能记多少是多少吧… FreeSurfer内数据 labelmriorgtransforms scriptsstatssurf 首先要提一下比较常见的两个词:lh和rh 如果我没…

FreeSurfer入门(1) Output Data

目录 前言一、使用freeview查看卷二、使用freeview查看3D surfacePial surfacewhite surfaceInflated SurfaceThickness MapCortical Parcellation 前言 因一些原因需要学习FreeSurfer,然而教程比较少有些难懂,看了一段时间觉得可能要钻钻牛角尖才可以完成学习,所以开始记笔记…

IXI数据预处理 + Linux + freesurfer

目录 1. freesurfer下载安装测试1.1 下载受阻&#xff0c;安装axel-2.4,多线程下载1.2 安装1.3 安装时出现的问题1.4 测试1.5 使用前注意 2. freesurfer 处理IXI2.1 freesurfer 的使用2.2 从零开始处理IXI2.2.1 命令行skull_stripping 单个.nii文件2.2.2 分析处理完成后的文件2…

Freesurfer的简单使用和一些基础知识

Freesurfer Freesurfer是用于MRI图像处理和分析的一款开源软件&#xff0c;可进行多种模态数据的预处理&#xff0c;皮层重建&#xff0c;volume与surface的互相之间的配准等。 MRI成像 https://www.csdn.net/tags/Mtzagg1sNzM3MTMtYmxvZwO0O0OO0O0O.html MRI成像原理&…

FreeSurfer汉化教程

介绍FsFAST的预处理 根据官网的英文进行翻译&#xff0c;并在使用过程中所犯的错误进行解决的过程 介绍Tutorial Data 下载以及安装 安装 安装Tutorial Datasets 从教程数据&#xff0c;创建文件tutorial_data在自己的工作路径中。 curl https://surfer.nmr.mgh.harvard.e…

Freesurfer教程(ubuntu)

Freesurfer教程&#xff08;ubuntu&#xff09; 参考链接&#xff1a;http://www.wjhsh.net/zhhfan-p-13405572.html 1.安装 freesurfer的安装教程各个网站上都用详细的过程&#xff0c;这里不再叙述 这个命令是在处理tutorial_data中的dcm数据时使用的&#xff1a;recon-al…

freeSurfer颅骨剥离

命令参考 https://surfer.nmr.mgh.harvard.edu/fswiki/recon-all recon-all -i 输入文件路径.nii -s 创建用于保存文件夹名称 -sd 保存文件夹所在的目录 -命令 -autorecon2-cp 输入输出参考 https://surfer.nmr.mgh.harvard.edu/fswiki/ReconAllDevTable orig/001.mgz 将…

freesurfer使用

一.做灰白质分割 我的目的是得到某被试的脑白质mask。 1.首先找了freesurfer教程&#xff0c;直接打开了freeview&#xff1b; 2.可视界面中没有直接的wmseg功能&#xff1b; 3.去使用freeview的手册查询wmseg&#xff08;开始怀疑这种操作不叫该名词..&#xff09;&#x…

【freesurfer学习1】freesurfer结构像批处理

freesurfer结构像批处理 最近0基础新入脑科学的坑&#xff0c;在等待申请数据集的时候&#xff0c;顺便学习一下freesurfer。 软件的安装稍后在评论区补上。 recon-all 分割重建 在我自定义的重建文件夹recon下有test文件夹&#xff0c;有两个文件夹demo1dcmnii&#xff0c;…