‘Client does not support authentication protocol requested by server; consider upgrading MySQL client’, PROTOCOL_ENQUEUE_AFTER_FATAL_ERROR

PROTOCOL_ENQUEUE_AFTER_FATAL_ERROR
PROTOCOL_ENQUEUE_AFTER_FATAL_ERROR

{ Error: ER_NOT_SUPPORTED_AUTH_MODE: Client does not support authentication protocol requested by server; consider upgrading MySQL client
    at Handshake.Sequence._packetToError (/root/pingnovel/node_modules/mysql/lib/protocol/sequences/Sequence.js:47:14)
    at Handshake.ErrorPacket (/root/pingnovel/node_modules/mysql/lib/protocol/sequences/Handshake.js:123:18)
    at Protocol._parsePacket (/root/pingnovel/node_modules/mysql/lib/protocol/Protocol.js:291:23)
    at Parser._parsePacket (/root/pingnovel/node_modules/mysql/lib/protocol/Parser.js:433:10)
    at Parser.write (/root/pingnovel/node_modules/mysql/lib/protocol/Parser.js:43:10)
    at Protocol.write (/root/pingnovel/node_modules/mysql/lib/protocol/Protocol.js:38:16)
    at Socket. (/root/pingnovel/node_modules/mysql/lib/Connection.js:91:28)
    at Socket. (/root/pingnovel/node_modules/mysql/lib/Connection.js:525:10)
    at emitOne (events.js:116:13)
    at Socket.emit (events.js:211:7)
    --------------------
    at Protocol._enqueue (/root/pingnovel/node_modules/mysql/lib/protocol/Protocol.js:144:48)
    at Protocol.handshake (/root/pingnovel/node_modules/mysql/lib/protocol/Protocol.js:51:23)
    at Connection.connect (/root/pingnovel/node_modules/mysql/lib/Connection.js:119:18)
    at Object. (/root/pingnovel/src/db1.js:11:12)
    at Module._compile (module.js:652:30)
    at Object.Module._extensions..js (module.js:663:10)
    at Module.load (module.js:565:32)
    at tryModuleLoad (module.js:505:12)
    at Function.Module._load (module.js:497:3)
    at Function.Module.runMain (module.js:693:10)
  code: 'ER_NOT_SUPPORTED_AUTH_MODE',
  errno: 1251,
  sqlMessage: 'Client does not support authentication protocol requested by server; consider upgrading MySQL client',
  sqlState: '08004',
  fatal: true }


这种授权协议问题,可以通过使用MYSQL NATIVE PASSWORD来解决,例如:


ALTER USER ABC IDENTIFIED WITH mysql_native_password BY 'password'

MySQL学生手册汇总

【MySQL学生手册】MySQL架构概览 – MySQL架构 https://www.askmaclean.com/archives/ch2-mysql%e6%9e%b6%e6%9e%84.html
【MySQL学生手册】Mysql 客户端/服务器(C/S)架构 https://www.askmaclean.com/archives/mysql-%e5%ae%a2%e6%88%b7%e7%ab%af%e6%9c%8d%e5%8a%a1%e5%99%a8cs%e6%9e%b6%e6%9e%84.html
【MySQL学生手册】MySQL的磁盘空间使用 https://www.askmaclean.com/archives/mysql%e7%9a%84%e7%a3%81%e7%9b%98%e7%a9%ba%e9%97%b4%e4%bd%bf%e7%94%a8.html
【MySQL学生手册】MySQL的内存使用 https://www.askmaclean.com/archives/mysql%e7%9a%84%e5%86%85%e5%ad%98%e4%bd%bf%e7%94%a8.html
【MySQL学生手册】MySQL的发行版本类型 https://www.askmaclean.com/archives/mysql%e7%9a%84%e5%8f%91%e8%a1%8c%e7%89%88%e6%9c%ac%e7%b1%bb%e5%9e%8b.html
【MySQL学生手册】MySQL的安装 https://www.askmaclean.com/archives/mysql%e7%9a%84%e5%ae%89%e8%a3%85.html
【MySQL学生手册】MySQL在Windows上的启动及停止 https://www.askmaclean.com/archives/mysql%e5%9c%a8windows%e4%b8%8a%e7%9a%84%e5%90%af%e5%8a%a8%e5%8f%8a%e5%81%9c%e6%ad%a2.html
【MySQL学生手册】MySQL在Unix上的启动及停止 https://www.askmaclean.com/archives/424.html
【MySQL学生手册】MySQL的配置 https://www.askmaclean.com/archives/mysql-configuration.html
【MySQL学生手册】MySQL的SQL模式 https://www.askmaclean.com/archives/mysql-sql-mode.html
【MySQL学生手册】MySQL日志和状态文件 https://www.askmaclean.com/archives/mysql-log-status-file.html
【MySQL学生手册】MySQL二进制日志(Binary Log) https://www.askmaclean.com/archives/mysql-binary-log.html
【MySQL学生手册】MySQL的升级 https://www.askmaclean.com/archives/mysql-upgrade.html
【MySQL学生手册】MySQL第三章测试 https://www.askmaclean.com/archives/mysql-3rd-chapter-test.html
【MySQL学生手册】MySQL客户端程序的调用 https://www.askmaclean.com/archives/mysql-client-involve.html
【MySQL学生手册】mysql客户端程序使用 https://www.askmaclean.com/archives/mysql-client-prog-using.html
【MySQL学生手册】mysqladmin、mysqlimport、mysqldump客户端程序 https://www.askmaclean.com/archives/mysql-client-tools-desc.html
【MySQL学生手册】MySQL客户端程序的限制 https://www.askmaclean.com/archives/mysql-client-tools-limitations.html
【MySQL学生手册】MySQL客户端接口 https://www.askmaclean.com/archives/mysql-client-api.html
【MySQL学生手册】MySQL元数据获取 https://www.askmaclean.com/archives/mysql-metadata-obtaining.html
【MySQL学生手册】INFORMATION_SCHEMA数据库 https://www.askmaclean.com/archives/mysql-information-schema.html
【MySQL学生手册】SHOW和DESCRIBE命令使用 https://www.askmaclean.com/archives/mysql-show-describe-cmd.html
【MySQL学生手册】mysqlshow程序 https://www.askmaclean.com/archives/mysqlshow-cmd.html
【MySQL学生手册】MySQL的SQL解析器和存储引擎层 https://www.askmaclean.com/archives/sql%e8%a7%a3%e6%9e%90%e5%99%a8%e5%92%8c%e5%ad%98%e5%82%a8%e5%bc%95%e6%93%8e%e5%b1%82.html
【MySQL学生手册】MySQL锁 https://www.askmaclean.com/archives/mysql-lock.html
【MySQL学生手册】显式(Explicit)表锁 https://www.askmaclean.com/archives/mysql-explicit-lock.html
【MySQL学生手册】协同(Advisory)锁 https://www.askmaclean.com/archives/mysql-advisory-lock.html
【MySQL学生手册】事务 https://www.askmaclean.com/archives/mysql-transactions.html
【MySQL学生手册】MySQL存储引擎 https://www.askmaclean.com/archives/mysql-storage-engines.html
【MySQL学生手册】常用存储引擎 – MyISAM https://www.askmaclean.com/archives/mysql-storage-engines-myisam.html
【MySQL学生手册】常用存储引擎 – InnoDB https://www.askmaclean.com/archives/mysql-storage-engines-innodb.html
【MySQL学生手册】常用存储引擎 – MEMORY https://www.askmaclean.com/archives/%e3%80%90mysql%e5%ad%a6%e7%94%9f%e6%89%8b%e5%86%8c%e3%80%91%e5%b8%b8%e7%94%a8%e5%ad%98%e5%82%a8%e5%bc%95%e6%93%8e-memory.html
【MySQL学生手册】其它存储引擎 https://www.askmaclean.com/archives/mysql-other-storage-engines.html
【MySQL学生手册】选择合适的存储引擎 https://www.askmaclean.com/archives/mysql-storage-engines-choice.html
【MySQL学生手册】分区(Partition) https://www.askmaclean.com/archives/mysql-partition.html
【MySQL学生手册】MySQL表分区类型 https://www.askmaclean.com/archives/mysql-partition-type.html
【MySQL学生手册】表维护操作类型 https://www.askmaclean.com/archives/mysql-maintenance-type.html

 

 

【MySQL学生手册】其它存储引擎

本文地址:https://www.askmaclean.com/archives/mysql-other-storage-engines.html

 

8.3 其它存储引擎

MySQL服务端还支持除之前所介绍之外的其它几种数据引擎(当然有些存储引擎随着各种原因,或渐渐淡出MySQL主流舞台,或被弃用,而第三方提供的存储引擎更是层出不穷,因此,这里我们就不一一列举了,只介绍官方提到的一些引擎,权当个小知识即可),基于不同版本的MySQL,其默认是否进行了编译安装启用都会有所不同,这里不会做太深入的启用介绍,因此,如果大家感兴趣,可以查看MySQL的官方手册来了解。

 

8.3.1 EXAMPLE存储引擎

你可以将EXAMPLE引擎作为一个最佳的”MySQL存储引擎开发”样例来进行源码学习,事实上此引擎的目的也是如此,它并非用于生产环境,其不支持任何的数据插入操作,它对于有志于开发那些自有存储引擎的开发者起到了一个示范作用。

 

8.3.2 MERGE存储引擎

MERGE存储引擎,这里又个称为MRG_MYISAM存储引擎。它可以将多张完全相同的MyISAM存储引擎表“合而为一”(建立一张MERGE表,其定义包含有多张表结构,列顺序,索引相同的MyISAM表)。

虽然可以合并的限制较为严格,不过如果可用的话也会有以下优点:

  • 更简单的表管理
  • 如果表其底层对应的MyISAM表分布如不同的磁盘,其只读的情况可获得更佳的查询速度。
  • 不受操作系统文件大小限制(每个MyISAM表文件都有其大小限制)。

优点不止于此,不过也有缺点:如MERGE表不可建立FULLTEXT索引;其索引读会慢一些等。

[Read more…]

MySQL的SQL查询优化课程

MySQL的SQL查询优化课程

文档下载地址: https://zcdn.askmaclean.com/MySQL%E6%9F%A5%E8%AF%A2%E6%80%A7%E8%83%BD%E4%BC%98%E5%8C%96.pdf

 

 

第一课:课程介绍

 

 

 

第二课:数据访问优化

 

 

 

第三课 了解MySQL查询优化概念(1)

 

 

 

第四课 了解MySQL查询优化概念(2)

 

 

 

第五课 了解EXPLAIN

 

 

 

 

第六课 SELECT语句优化实例

 

 

 

L7 – 优化实例 – 单个复杂查询 vs 多个简单查询

 

 

L8 – 优化实例 – JOIN语法中表顺序的影响

 

 

L9 – 优化实例 – 子查询,Exists,表连接?谁是最优之选

 

 

L10 – 优化实例 – 聚合函数 MIN,MAX的调优

 

 

L11 – 优化实例 – Group By语法优化

 

 

L12 – 优化实例 – 使用Limit语法进行分页优化

 

 

L13 – 优化实例 – Union和Union ALL之间的性能差别

 

 

L14 – 优化实例 – 索引和不等号

 

 

L15 – 最佳实践建议总结

 

 

 

MySQL架构概览 – MySQL架构

章节中会介绍MySQL所使用的客户/服务器模型。你会了解:

  • 对MySQL C/S模式的描述
  • 理解通信协议(Communication Protocols)
  • 理解服务器如何支持存储引擎
  • 关于MySQL如何使用内存和磁盘空间的基础知识 dbdao.com

 

2.1 MySQL架构概览

 

MySQL架构实际上是一组为了完成数据库服务器任务而协同工作的相关功能组合。这些功能集包含超过50,0000行代码。下图中对其中的功能子系统进行了分层展示,层级之间通过相应API进行交互。多数情况下,每个子系统会对信息进行接收,处理然后再传送给下一个子系统以完成所分配的任务。子系统之间相对独立,这样就会有更大的自由度(如由于执行语句的存储引擎独立性,客户端不必知道哪个存储引擎执行其请求)。dbdao.com
m31_ch2.1_mysql_subsystem_overview

 

2.1.1 核心共享子系统(Core Shared Subsystems)

在MySQL中的每个子系统都能自成一章。由于篇幅所限,这里仅对每个核心共享子系统进行简单描述,以给大家对其性能特点有一个概括性理解。

 

进程,线程和资源管理器(Process, Thread and Resource Management):

MySQL使用了一个基于线程的服务器架构,允许各种执行线程(或称为轻量级进程)访问核心共享资源。MySQL这种的多线程单进程架构能保证多个执行线程之间不会相互冲突或覆盖重要数据。使用基于线程的服务器架构最值得注意的优点是:

  • 节约成本 – 和进程相比,线程的建立和销毁成本更低。新的线程可使用其父进程的地址空间而不需要额外的地址空间。
  • 切换代价低 – 由于线程运行于相同的服务器进程空间中, 因此线程之间的切换代价很小。
  • 极小的开销 – 由于线程可对父进程地址空间进行访问,因此在共享资源下开销也变得极小。

 

缓存(Cache/Buffer)管理:

此子系统专注于缓冲并取回服务器进程中所有线程执行所用的大量数据类型。由于已经将返回的数据进行内存缓存,因此数据缓存使得MySQL可以降低大量对于基于磁盘I/O代价昂贵的操作。

 

网络管理(Networking Management):

此子系统的职责是通过处理在多平台间发送和接收带有MySQL连接请求和命令的网络数据包这样的工作,使得各种通信协议(TCP/IP, 命名管道Named Pipes等)对连接线程变得透明。它也包括了处理安全套接字层(Secured Socket Layers: SSL)这样的工作。

 

日志管理:

这个子系统是为了将各种日志事件子类被维护在一个日志类下而建立的。这样能使得开发者能在不破坏系统核心功能的情况下增加日志和日志事件。通过对日志系统中子系统的区分。各种系统活动(启动,多语句事务,自动增量auto-increment值改变等)就可以通过子类事件进行记录。

 

访问及授权管理:

此子系统定义了所有为执行命令所需的GRANT权限并主要用于保证客户端和服务器间的安全。它会验证用户在登陆过程中的访问权限及查询权限。此子系统也包含了一些对授权表的内存版本修改功能及密码生成功能。

 

2.1.2 存储引擎接口(Storage Engine Abstraction)

此子系统使得MySQL可以在系统架构中使用不同的表数据handlers(处理子程序)。尽管不是所有存储引擎都完整实现了相关handler API,但大部分独立的handler API都被用于转换数据、schema和索引格式,以使其符合MySQL内部记录格式所需(内存记录格式)。

 

2.1.3 查询解析,优化和执行

由于这些子系统负责接收SQL语句,将语句解构为各种数据结构并以最佳路径进行执行,因此它们被称为MySQL服务器的大脑。

  • 查询解析:

这是一个将SQL语句解析为一个抽象语法的过程。由于此过程非常复杂,因此解析时不能对任何用户变量进行改变。

  • 优化:

此子系统负责找到查询的最优执行计划。

  • 执行:

此子系统又被称为语句执行单元,负责按照通过SQL命令解析和优化后所得的最优执行路径进行执行。执行进程的基本功能是都有一个指针作为其第一参数以将结构数据包发回给客户端。

 

2.1.4 查询缓存(Query Cache)

不像其它MySQL子系统,此“子系统”组件由一系列类组成。它不仅负责缓存被执行的SQL命令,还存储命令执行后的结果。

By Biot Wang, dbdao.com

Mysql 客户端/服务器(C/S)架构

本文地址:https://www.askmaclean.com/archives/mysql-log-status-file.html

dbDao 百度贴吧:http://tieba.baidu.com/dbdao
Mysql技术学习QQ群:146959374

 

MySQL在整个网络环境中使用客户端/服务器(Client/Server)架构运行。换言之,其核心程序扮演着服务器角色,而各个客户端程序连接到服务器并提出请求。MySQL的安装涉及以下主要组件: MySQL Server, Client程序和MySQL非客户端工具

2.2.1 MySQL Server

MySQL Server或者说mysqld,实际上是一个数据库服务器程序。它管理着对磁盘数据库和内存的访问。MySQL Server进行多线程操作,它支持多个客户端连接的同时访问。为了更好地管理数据库内容,MySQL Server的特色架构模型支持多种存储引擎以处理不同类型的表(例如,它同时支持事务和非事务表)。 dbdao.com

由于MySQL Server此特性配置可能随时间变化而有所改动,因此当你下载新版本MySQL时候,请仔细阅读相关版本文档。

 

请您清楚了解我们的用词,server(服务器)和host(主机)的用词区别。在这里Server是指软件(MySQL server程序mysqld)。Server的特征中有它的版本号,指的是哪些特性包括,哪些不包括等。而host是指server程序运行所在的物理机。Host的特征中包括了硬件配置,所运行的操作系统,其网络地址等等。一个host可以有多个mysqld实例在上面同时运行。

 

2.2.2 Client程序

客户端程序被用于和server进行通信以修改服务器端server管理的数据库信息。MySQL提供了多种client端工具程序:

  • MySQL Workbench, 一种作为访问Mysql Server的图形化的前端工具(具有MySQL Query Browser和MySQL Administrator相关功能,MySQL Query Browser和MySQL Administrator现已不再提供更新)。
  • mysql,一种文本形式的命令行前端工具。
  • 其他命令行客户端工具包括导入数据文件用的mysqlimport,生成备份的mysqldump, 作为服务器管理的mysqladmin,和用于检查数据库文件完整性的mysqlcheck。

 

MySQL客户端/服务器(Client/Server)模型:

MySQL可运行于Windows, Unix和Linux平台上,但客户端和服务器之间的沟通并不受限于所运行的操作系统。客户端程序和服务器之间的连接可以在同一台主机上进行,也可以是不同的主机间进行,且客户端主机和服务器主机不需要操作系统保持一致。例如,客户端程序可以运行于Windows上,而所连接的Server则运行在Linux host上。

 

大多在此讨论的概念都是指针对于MySQL运行的系统。除了一些特定的平台说明外,这里”Unix”一般都是指包括Linux和其他的Unix-like操作系统。 dbdao.com

 

2.2.3 通信协议

以下详细描述了和MySQL server进行交互所使用各种不同通信协议:

  • TCP/IP – 传输控制协议(Transmission Control Protocol)/互联网协议(Internet Protocol),是一套被用于连接互联网上各主机的通信协议。TCP/IP一开始是用于UNIX操作系统建立互联网通信的。现在它已经成为了一种网络数据传输的事实标准。即便那些拥有自己通信协议的网络操作系统,如Netware也支持TCP/IP协议。
  • Unix Socket – 在计算机世界,一个socket是一种内部进程通信形式,它被用于在相同主机上形成进程间的双向通信连接点(在本地系统上的一个物理文件)。
  • 共享内存(Shared Memory) – 一个在程序间传送数据的有效方法。一个程序会建立一个内存区以提供其它受允许的进程进行访问。Windows显式”passive”连接模式仅可工作于(Windows系统)主机中。
  • NT管道这种命名管道设计更偏向于客户端-服务器通信,它们更像socket:除了用于通常的读写操作外,Windows命名管道也同时对server应用支持显式”passive”被动连接模式。仅在单独(Windows平台)主机中运行。 dbdao.com

 

2.2.4 MySQL非客户端工具

有这么些程序运行时独立于server之外。它们首先在操作时并不会和server建立连接。如myisamchk。它执行表检查及修复操作。其它此类型程序有myisampack,它用于建立压缩的只读版本的MyISAM表。这两个工具都可以直接对MyISAM表文件进行访问,且独立于mysqld数据库server之外。

by Biot Wang, dbdao.com

MySQL的SQL解析器和存储引擎层

dbDao 百度贴吧:http://tieba.baidu.com/dbdao

Mysql技术学习QQ群:146959374

客户端通过以SQL语句的形式发送请求给服务器端从而从表中获取数据或对表数据进行修改。而服务端程序使用以下两层处理模型以执行每个语句请求:dbdao.com

  • 上层包括SQL解析器(parser)和优化器(optimizer)。
  • 下层包括了一组存储引擎。

需要注意的是,SQL层并不依赖于存储引擎管理的表。这意味着客户端通常不需要考虑哪个引擎被涉及处理其SQL语句,也不用考虑访问和更新的表是受到哪个引擎的管理。当然也有例外:

  • CREATE TABLE语句有ENGINE项可用于在建立表时启用你所定义的存储引擎。ALTER TABLE语句也含有一个ENGINE项可以使你能将原表转换使用一个不同的存储引擎。
  • 一些索引类型仅在某些特定存储类型中可用。例如, 仅MyISAM引擎支持空间索引(spatial index), 仅MyISAM, InnoDB(6.4以上)支持全文索引(full-text)等。dbdao.com

COMMIT和ROLLBACK仅对由事务型存储引擎(如InnoDB)管理的表有效果。

存储引擎细分

下图简单展示了MySQL服务和其存储引擎之间的交互。

m31_2.3_mysql_storage_engine_wm_a01e18650dc19d05904f5be78c4dbdf088be3bef

依赖存储引擎不同会有以下不同:

  • 存储方法 – 每张表中的数据按其自身的方法进行存储。
  • 事务处理能力 – 某些存储引擎可以对事务进行处理,在执行多SQL语句时能确保数据库的完整性。
  • – 是指每个引擎对于多线程执行场景中同一个资源的访问限制及同步机制处理。
  • 备份恢复 – 基于不同的存储方法,表数据的备份和恢复也有区分。
  • 优化 – 对于数据存储的优化和通过MySQL服务器的数据抽取,每个存储引擎都有其特定的优化点。
  • 特定特性 – 某些引擎具有一些不同的特性包括全文搜索,参照完整性和处理空间数据的能力。

多数MySQL服务器会以相同的方式进行操作,即所有的常用SQL语句都是引擎无关的。当然,其优化器可能会按不同的存储引擎做出不同的优化判断,但也都是通过所有引擎都支持的一套标准接口(API)进行所有处理。

by 汪伟华, dbdao.com

MySQL的内存使用

dbDao 百度贴吧:http://tieba.baidu.com/dbdao

Mysql技术学习QQ群:146959374

MySQL Server内存使用中包括了用于管理与客户端之间进行沟通和处理数据库内容Server所建立的数据结构。它会在运行时为许多类型的信息分配内存,如:

  • 线程(Thread Handler):

线程在MySQL(或其它程序)中被用于将应用的执行分成多个同步运行的任务。对每个连接到MySQL Server的客户端,Server都会建立一个独立的线程来进行连接处理。MySQL Server为了避免一些可能产生的性能问题,会分配一块小的缓存给这些线程,在客户端断开后,被分配的缓存仍然会被保持。任何新的连接会首先通过此缓存来实例化线程,而不是重新建立一个新线程。这样就能确保内存消耗始终处于最低状态。

  • 缓存(Buffers / Cache)

MySQL Server会使用多个buffers(或者称为caches),作为内存集以临时保存数据的输入或输出,目的是避免高成本的磁盘I/O访问。这些缓存主要由缓存管理子系统来进行操作,可对支持MyISAM索引块的索引缓存和持有已打开表的表述符的授权表缓存进行快速访问。此外,MySQL Server还包含了一个查询缓存(Query Cache)用于加速重复查询的处理速度。

  • MEMORY存储引擎

MySQL Server的一种存储引擎,此引擎允许表被存储在内存上。MEMORY表默认使用哈希索引,这对建立临时表及提高临时表处理速度很有用。然而,当服务器被关闭后,MEMORY表中的所有数据行会丢失。这些表的表结构定义会被存储在.frm文件中,当server重启后,这些表都是空表。dbdao.com

  • 内部临时表

通常,我们碰到MySQL需要建立一张内部临时表的例子都是当你需要进行一个复杂查询时,这强迫你建立一个临时表来解决此类问题。系统变量tmp_table_size决定了这张临时表在转换为一张磁盘存储的MyISAM表之前所能增长的最大值,超出此值后,它将会被自动转换为一张MyISAM表。

  • 客户特定缓存(Client specific buffers)

MySQL server同时维护了多个特别设计的缓存以支持独立客户端的连接。例如包括了用于交互信息的通信缓存,用于表的读缓存及支持表连接和排序操作的缓存等。

 

2.5.1 数据存储

数据存储涉及到对性能调优和MySQL整体架构都非常重要的三个方面。这些方面是数据库服务器存储和检索系统的基础。

 

持久的数据存储:

数据存储系统要求持久性,或者说在服务重启时保留住数据的能力。这需要通过持久性数据设备如硬盘或二级存储设备来完成。此类数据存储对于数据的持续性和完整性保证是其关键,但是设备对数据的读写数据会相对慢些。

 

挥发性存储:

对于易挥发性存储如随机访问内存(RAM),一般处于持久性数据存储和数据库服务之间。好处是可以瞬时内存中读取数据。当然,一旦发生间歇性或非间歇性断电,这些数据会丢失。

m31_2.5_mysql_momery_use_wm_6a7b89b80c577336040e344de2cc979ce1828b3d

逻辑数据呈现:

当数据从持久数据存储(硬盘)中移至易挥发性存储(内存),它必须有逻辑性地组织在一起并被保存称为页的许多块中。这些页将会由操作系统和硬件缓冲池来管理,作为操作单元被自动分配或释放。dbdao.com

MySQL的缓存管理子系统将和操作系统上的缓存管理一起来处理不同数据类型的缓存。每个存储引擎有不同的处理方法,我们在之后的存储引擎章节中会对其进行讨论。

 

2.5.2 挥发性存储(Memory)

MySQL会对内部缓存的分配大致分为两类:

全局缓存将会被所有线程(连接)所共享。而本地缓存则和独立的线程相关。MySQL可对这两种分类内存进行大量的控制管理设置。

 

本地内存:

本地内存是针对特定会话连接并动态分配的。这些内存区在不连接后会被自动释放。本地内存大多被用于处理查询结果。

全局内存:

全局内存是那些被预先分配且可被共享使用的内存。全局内存仅分配一块缓存区。

需要注意的是不断增长的本地内存则会使用更多、甚至占用机器余下的全部内存。当所有服务器内存被使用,操作系统就会开始使用swap交换区来保存内存信息,这样性能就降低了。MySQL Server的性能最终会收到负面效果,甚至可能导致性能崩溃。

by 汪伟华,dbdao.com

使用Partition分区来提升您的MySQL数据库性能

使用Partition分区来提升您的MySQL数据库性能
By Antoinette O’Sullivan-Oracle dbdao.com

你可以通过使用分区来进一步提升你的MySQL数据库性能,将特定表行分成多个行集。可以在很多不同场景通过分区获得益处,如提升大表效率:

  • 将数据分成很多小组以提升查询效率
  • 符合系统文件大小限制
  • 对维护和删除等行操作进行加速

要了解更多关于分区和其他主要议题,欢迎大家来参加MySQL数据库管理员培训课程

 

你将通过以下形式来获得5天由教员引导的课程dbdao.com:

按需培训:在注册后24小时内即可开始课程,按照讲义材料并收看培训视屏学习,学习后你可以自己预定时间来Oracle实验室环境获取手把手教学体验。

在线虚拟教学:无需至Oracle培训地,你只需要在线参加线上班级课程即可。从一系列教学计划中选择对应时区的在线培训即可,你也可以选择不同时区不同语言的在线培训课程,一切如您所需。

实地培训:直接到Oracle教育培训中心参加课程,以下为亚洲区的培训计划安排:

ASIA

 Location  Date  Delivery Language
Shanghai, China 6 July 2015 Simplified Chinese
Causeway Bay, Hong Kong 11 May 2015 English
Bangalore, India 18 May 2015 English
Seoul, Korea 6 April 2015 Korean
Kuala Lumpur, Malaysia 17 August 2015 English
Petaling Jaya, Malaysia 11 May 2015 English
Pulau Pinang, Malaysia 17 August 2015 English
Pasig City, Philippines 8 June 2015 English
Singapore 6 April 2015 English
Bangkok, Thailand 15 June 2015 English

MySQL数据库管理课程被推荐给正准备参加MySQL 5.6数据库管理OCP认证考试的人dbdao.com。

MySQL初学者入门视频教程

MySQL初学者入门视频教程, 观看地址:

课件下载地址: https://zcdn.askmaclean.com/MySQL%E5%88%9D%E5%AD%A6%E8%80%85%E5%85%A5%E9%97%A8.pdf

 

QQ截图20150703112122 QQ截图20150703112114 QQ截图20150703112056

 

0 – 课程简介

 

 

1 – 数据库简介

 

 

2 – MySQL Install on Windows

 

3 – MySQL Install on Linux

 

 

4 – MySQL远程访问

 

 

5 – MySQL基础(一)- 数据库和表的新建

 

6 – MySQL基础(一)- 表数据插入及查询

 

 

7 – MySQL基础(一)- 多条件查询及排序

 

 

8 – MySQL基础(一)- 表更新及结构修改

 

9 – MySQL基础 ( 一 ) – 表删除及数据清空

 

10 – MySQL基础(二)- 范围查询及合并查询

 

11 – MySQL基础(二)- 数据库表的拷贝

 

12 – MySQL基础(三)- 数据库表定义 – 主键, 唯一键及外键

 

13 – MySQL基础(三)- 数据库表定义 – 自增列, NOT NULL及DEFAULT

 

 

14 – MySQL基础(四)- 数据库表连接

 

 

 

15 – 课程结尾

 

沪ICP备14014813号

沪公网安备 31010802001379号