热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

MySQL技术专题(X)该换换你的数据库版本了,让我们一同迎接8.0的到来哦!(初探篇)

前提背景MySQL关是一种关系数据库管理系统,所使用的SQL语言是用于访问数据库的最常用的标准化语言,其特点为体积小、速度快、总体拥有成本低,尤其是开放

前提背景

MySQL关是一种关系数据库管理系统,所使用的 SQL 语言是用于访问数据库的最常用的标准化语言,其特点为体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,在 Web应用方面 MySQL 是最好的 RDBMS(Relational Database Management System:关系数据库管理系统)应用软件之一。
本文主要讲述压缩版,因为安装不太方便,但是功能效果都是一样的!

  • 访问地址:MySQL官网
  • 下载地址:MySQL下载

MySQL8的介绍说明

MySQL 8.0是全球最受欢迎的开源数据库的一个非常令人兴奋的新版本,全面改进。一些关键的增强包括:

MySQL8的特性介绍

SQL窗口函数,公用表表达式,NOWAIT和SKIP LOCKED,降序索引,分组,正则表达式,字符集,成本模型和直方图。
*
JSON扩展语法,新功能,改进排序和部分更新。使用JSON表函数,您可以使用JSON数据的SQL机制。
*
GIS地理支持。空间参考系统(SRS),以及SRS感知空间数据类型,空间索引和空间功能。
*
可靠性 DDL语句已变得原子性和崩溃安全,元数据存储在单个事务数据字典中。由InnoDB提供支持!
*
可观察性性能架构,信息架构,配置变量和错误记录的显着增强。
*
可管理性远程管理,撤消表空间管理和新的即时DDL。
*
安全 OpenSSL改进,新的默认身份验证,SQL角色,分解超级特权,密码强度等等。
*
性能 InnoDB在读/写工作负载,IO绑定工作负载和高争用“热点”工作负载方面明显更好。
*
增加了资源组功能,通过将用户线程映射到CPU,为用户提供一个选项,以针对特定硬件上的特定工作负载进行优化

开发者需要了解的特性!

MySQL开发人员需要新功能,而MySQL 8.0在诸如SQL,JSON,正则表达式和GIS等领域提供了许多新的和更多需求的功能。开发人员也希望能够存储Emojis,因此UTF8MB4现在是8.0中的默认字符集。最后,数据类型得到了改进,在BINARY数据类型上进行了按位操作,并且改进了IPv6和UUID功能。

下面简要介绍 MySQL 8 中值得关注的新特性和改进。

  1. 性能:MySQL8.0的速度要比MySQL5.7 快 2 倍。MySQL 8.0 在以下方面带来了更好的性能:读/写工作负载、IO 密集型工作负载、以及高竞争("hot spot"热点竞争问题)工作负载。

  1. NoSQL:MySQL从5.7版本开始提供 NoSQL 存储功能,目前在8.0版本中这部分功能也得到了更大的改进。该项功能消除了对独立的 NoSQL 文档数据库的需求,而 MySQL 文档存储也为 schema-less 模式的 JSON 文档提供了多文档事务支持和完整的ACID合规性。

  1. 窗口函数(Window Functions):从 MySQL 8.0 开始,新增了一个叫窗口函数的概念,它可以用来实现若干新的查询方式。窗口函数与 SUM()、COUNT() 这种集合函数类似,但它不会将多行查询结果合并为一行,而是将结果放回多行当中。即窗口函数不需要 GROUP BY。
  • 窗口函数

  • MySQL 8.0提供了SQL窗口功能。与分组集合函数类似,窗口函数对一组行进行一些计算,例如COUNT或SUM。但是,如果分组聚合将这组行集合到一行中,则窗口函数将为结果集中的每一行执行聚合。

  • 窗口化的聚合函数:COUNT,SUM,AVG,MIN,MAX,BIT_OR,BIT_AND,BIT_XOR,STDDEV_POP(及其同义词STD,STDDEV),STDDEV_SAMP,VAR_POP(及其同义词VARIANCE)和VAR_SAMP。

  • 专门的窗口函数是:RANK,DENSE_RANK,PERCENT_RANK,CUME_DIST,NTILE,ROW_NUMBER,FIRST_VALUE,LAST_VALUE,NTH_VALUE,LEAD和LAG

对窗口函数(又名分析函数)的支持是一种频繁的用户请求

隐藏索引:在 MySQL 8.0 中,索引可以被“隐藏”和“显示”。当对索引进行隐藏时,它不会被查询优化器所使用。我们可以使用这个特性用于性能调试,例如我们先隐藏一个索引,然后观察其对数据库的影响。如果数据库性能有所下降,说明这个索引是有用的,然后将其“恢复显示”即可;如果数据库性能看不出变化,说明这个索引是多余的,可以考虑删掉。
1.
降序索引:MySQL 8.0 为索引提供按降序方式进行排序的支持,在这种索引中的值也会按降序的方式进行排序。
1.
公用表表达式(Common Table Expressions CTE):在复杂的查询中使用嵌入式表时,使用 CTE 使得查询语句更清晰。

  • MySQL 8.0提供[递归]公用表表达式(CTE)。非递归CTE可以解释为“改进的派生表”,因为它允许派生表被多次引用。递归CTE是一组迭代构建的行:从最初的一组行开始,一个进程派生新的行,然后将这些新的行重新输入到进程中,产生更多的行,等等,直到该过程不再生成行。

UTF-8 编码:从 MySQL 8 开始,使用 utf8mb4 作为 MySQL 的默认字符集。
*
JSON:MySQL 8 大幅改进了对 JSON 的支持,添加了基于路径查询参数从 JSON 字段中抽取数据的 JSON_EXTRACT() 函数,以及用于将数据分别组合到 JSON 数组和对象中的 JSON_ARRAYAGG() 和 JSON_OBJECTAGG() 聚合函数。
*
可靠性:InnoDB 现在支持表 DDL 的原子性,也就是 InnoDB 表上的 DDL 也可以实现事务完整性,要么失败回滚,要么成功提交,不至于出现 DDL 时部分成功的问题,此外还支持 crash-safe 特性,元数据存储在单个事务数据字典中。
*
高可用性(High Availability):InnoDB 集群为您的数据库提供集成的原生 HA 解决方案。
*
安全性:对 OpenSSL 的改进、新的默认身份验证、SQL 角色、密码强度、授权。

MySQL8的安装介绍

进入官网后,点击"Dowload",然后页面往下拉

接下来看到的页面是这样的,红色框框的链接就是mysql社区版,是免费的mysql版本,然后我们点击这个框框的链接:

接下来跳转到这个页面,在这里,我们只要下载社区版的Server就可以了:

下载免安装版(windows以外的其他系统除外)

  • 至此,安装包就下载好了!
    注意,安装的目录应当放在指定位置,其次,绝对路径中避免出现中文,推荐首选英文为命名条件!

MySQL解压和配置环境变量

找一个文件夹放入解压后的mysql,不建议放c盘,200M左右的sql解压后大约接近1G
1.
把MySQL解压后的bin文件地址加入环境变量的path,方便终端寻找MySQL命令行。

MySQL 创建配置

下载完后,建议解压到一个没有中文的路径,在解压目录创建my.ini配置文件(如果没有就自己手动建立一个即可)

添加相关基本配置

# 这些是基本配置信息
[client]
# 设置mysql客户端默认字符集
default-character-set=utf8mb4
[mysqld]
# 设置3336端口
port = 3336
# 设置mysql的安装目录
basedir=D:\developer\installed\mysql8\mysql-8.0.12-winx64
# 设置 mysql数据库的数据的存放目录
datadir=D:\developer\installed\mysql8\mysql-8.0.12-winx64\data
# 允许最大连接数
max_cOnnections=20
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
# 允许连接失败的次数。
max_connect_errors=10
# 服务端使用的字符集默认为utf8mb4
character-set-server=utf8mb4
# 创建新表时将使用的默认存储引擎
# 使用“mysql_native_password”插件认证
#mysql_native_password
default_authentication_plugin=mysql_native_password
#设置时区为东八区,此项设置后,在连接MySQL的时候可以不用每次都手动设置时区
default-time-zOne= '+8:00'

  • mysql给出的初始密码太复杂了,一般我们需要改为一个简单的密码方便之后登陆,在MySQL8.0.4以前,执行:SET PASSWORD=PASSWORD(’[修改的密码]’),即可更改密码,但MySQL8.0.4开始,这样默认是不行的。因为之前,MySQL的密码认证插件是“mysql_native_password”,而现在使用的是“caching_sha2_password”。
  • 因为当前有很多数据库工具和链接包都不支持“caching_sha2_password”,为了方便,暂时需要改回“mysql_native_password”认证插件。
初始化MySQL服务

采用cmd进入解压后的bin目录,输入mysqld --initialize --console

  • mysql会在和bin同级目录下产生data文件,即root的数据库,并产生如下红框中的随机密码(如果没有密码,可以使用mysql -uroot -p直接登陆),对应账号为root。在没有更改密码前,需要记住这个密码,后续登录需要用到。

安装MySQL服务
  • 还在bin 目录下执行命令

mysqld --install [服务名]

后面的服务名可以不写,默认的名字为 mysql。当然,如果电脑上需要安装多个MySQL服务,就可以用不同的名字区分了,比如 liboMySQL

在mysql的bin目录下面执行: mysqld --install

报错信息如下:Install/Remove of the Service Denied
*
解决办法:打开cmd.exe程序的时候选择“用管理员身份打开”。

出现上述信息则标识成功安装

启动MySQL服务

输入:net start [服务名]

登录MySQL服务
  • 登录指定端口3336
    命令如下,这时候会提示输入密码,使用上面安装时给的随机密码,填入即可登录成功,进入MySQL命令模式。

mysql -u root -p 3336

修改密码

刚才生成的是临时密码,得改。

输入ALTER USER "root"@"localhost" IDENTIFIED BY "新密码";

卸载MySQL服务
停止服务

net stop libomysql(服务名)

卸载服务

mysqld --remove libomysql(服务名)

参考资料

  • https://www.cnblogs.com/2020javamianshibaodian/p/12933674.html
  • https://www.jianshu.com/p/647a596cb251
  • https://www.jb51.net/article/218165.htm
  • https://blog.csdn.net/qq_32448349/article/details/81701355

极限就是为了超越而存在的


推荐阅读
  • 生成式对抗网络模型综述摘要生成式对抗网络模型(GAN)是基于深度学习的一种强大的生成模型,可以应用于计算机视觉、自然语言处理、半监督学习等重要领域。生成式对抗网络 ... [详细]
  • [译]技术公司十年经验的职场生涯回顾
    本文是一位在技术公司工作十年的职场人士对自己职业生涯的总结回顾。她的职业规划与众不同,令人深思又有趣。其中涉及到的内容有机器学习、创新创业以及引用了女性主义者在TED演讲中的部分讲义。文章表达了对职业生涯的愿望和希望,认为人类有能力不断改善自己。 ... [详细]
  • FineReport平台数据分析图表显示部分系列接口的应用场景和实现思路
    本文介绍了FineReport平台数据分析图表显示部分系列接口的应用场景和实现思路。当图表系列较多时,用户希望可以自己设置哪些系列显示,哪些系列不显示。通过调用FR.Chart.WebUtils.getChart("chartID").getChartWithIndex(chartIndex).setSeriesVisible()接口,可以获取需要显示的系列图表对象,并在表单中显示这些系列。本文以决策报表为例,详细介绍了实现方法,并给出了示例。 ... [详细]
  • 一句话解决高并发的核心原则
    本文介绍了解决高并发的核心原则,即将用户访问请求尽量往前推,避免访问CDN、静态服务器、动态服务器、数据库和存储,从而实现高性能、高并发、高可扩展的网站架构。同时提到了Google的成功案例,以及适用于千万级别PV站和亿级PV网站的架构层次。 ... [详细]
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • 这是原文链接:sendingformdata许多情况下,我们使用表单发送数据到服务器。服务器处理数据并返回响应给用户。这看起来很简单,但是 ... [详细]
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • JavaScript设计模式之策略模式(Strategy Pattern)的优势及应用
    本文介绍了JavaScript设计模式之策略模式(Strategy Pattern)的定义和优势,策略模式可以避免代码中的多重判断条件,体现了开放-封闭原则。同时,策略模式的应用可以使系统的算法重复利用,避免复制粘贴。然而,策略模式也会增加策略类的数量,违反最少知识原则,需要了解各种策略类才能更好地应用于业务中。本文还以员工年终奖的计算为例,说明了策略模式的应用场景和实现方式。 ... [详细]
  • Voicewo在线语音识别转换jQuery插件的特点和示例
    本文介绍了一款名为Voicewo的在线语音识别转换jQuery插件,该插件具有快速、架构、风格、扩展和兼容等特点,适合在互联网应用中使用。同时还提供了一个快速示例供开发人员参考。 ... [详细]
  • 本文介绍了RPC框架Thrift的安装环境变量配置与第一个实例,讲解了RPC的概念以及如何解决跨语言、c++客户端、web服务端、远程调用等需求。Thrift开发方便上手快,性能和稳定性也不错,适合初学者学习和使用。 ... [详细]
  • Google Play推出全新的应用内评价API,帮助开发者获取更多优质用户反馈。用户每天在Google Play上发表数百万条评论,这有助于开发者了解用户喜好和改进需求。开发者可以选择在适当的时间请求用户撰写评论,以获得全面而有用的反馈。全新应用内评价功能让用户无需返回应用详情页面即可发表评论,提升用户体验。 ... [详细]
  • 本文介绍了在Windows环境下如何配置php+apache环境,包括下载php7和apache2.4、安装vc2015运行时环境、启动php7和apache2.4等步骤。希望对需要搭建php7环境的读者有一定的参考价值。摘要长度为169字。 ... [详细]
  • Linux如何安装Mongodb的详细步骤和注意事项
    本文介绍了Linux如何安装Mongodb的详细步骤和注意事项,同时介绍了Mongodb的特点和优势。Mongodb是一个开源的数据库,适用于各种规模的企业和各类应用程序。它具有灵活的数据模式和高性能的数据读写操作,能够提高企业的敏捷性和可扩展性。文章还提供了Mongodb的下载安装包地址。 ... [详细]
  • 本文介绍了响应式页面的概念和实现方式,包括针对不同终端制作特定页面和制作一个页面适应不同终端的显示。分析了两种实现方式的优缺点,提出了选择方案的建议。同时,对于响应式页面的需求和背景进行了讨论,解释了为什么需要响应式页面。 ... [详细]
  • 本文介绍了OkHttp3的基本使用和特性,包括支持HTTP/2、连接池、GZIP压缩、缓存等功能。同时还提到了OkHttp3的适用平台和源码阅读计划。文章还介绍了OkHttp3的请求/响应API的设计和使用方式,包括阻塞式的同步请求和带回调的异步请求。 ... [详细]
author-avatar
kanlikanliti_627
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有