您的当前位置:首页 >应用开发 >不像MySQL的MySQL:MySQL文档存储介绍 正文
时间:2025-11-05 09:28:11 来源:网络整理编辑:应用开发
MySQL 文档存储 可以跳过底层数据结构创建、数据规范化和其它使用传统数据库时需要做的工作,直接存储数据。MySQL 可以提供 NoSQL JSON 文档存储Document Store了,这样开发
MySQL 文档存储 可以跳过底层数据结构创建、不像数据规范化和其它使用传统数据库时需要做的文档工作,直接存储数据。存储
MySQL 可以提供 NoSQL JSON 文档存储Document Store了,介绍这样开发者保存数据前无需规范化normalize数据、不像创建数据库,文档也无需在开发之前就制定好数据样式。存储从 MySQL 5.7 版本和 MySQL 8.0 版本开始,介绍开发者可以在表的不像一列中存储 JSON 文档。由于引入 X DevAPI,文档你可以从你的存储代码中移除令人不爽的结构化查询字符串,改为使用支持现代编程设计的介绍 API 调用。

系统学习过结构化查询语言(SQL)、不像关系理论relational theory、文档集合set和其它关系数据库底层理论的存储开发者并不多,但他们需要一个安全可靠的数据存储。如果数据库管理人员不足,事情很快就会变得一团糟,
MySQL 文档存储 允许开发者跳过底层数据结构创建、数据规范化和其它使用传统数据库时需要做的工作,直接存储数据。只需创建一个 JSON 文档集合document collection,接着就可以使用了。
所有这一切都基于多年前 MySQL 5.7 引入的 JSON 数据类型。它允许在表的b2b信息网一行中提供大约 1GB 大小的列。数据必须是有效的 JSON,否则服务器会报错;但开发者可以自由使用这些空间。
旧的 MySQL 协议已经历经差不多四分之一个世纪,已经显现出疲态,因此新的协议被开发出来,协议名为 X DevAPI。协议引入高级会话概念,允许代码从单台服务器扩展到多台,使用符合通用主机编程语言样式common host-language programming patterns的非阻塞异步 I/O。需要关注的是如何遵循现代实践和编码风格,同时使用 CRUD (Create、 Read、 Update、 Delete)样式。换句话说,你不再需要在你精美、纯洁的代码中嵌入丑陋的 SQL 语句字符串。
一个新的 shell 支持这种新协议,即所谓的 MySQL Shell。该 shell 可用于设置高可用集群high-availability cluster、WordPress模板检查服务器升级就绪状态upgrade readiness以及与 MySQL 服务器交互。支持的交互方式有以下三种:JavaScript,Python 和 SQL。
下面的代码示例基于 JavaScript 方式使用 MySQL Shell,可以从 JS> 提示符看出。
下面,我们将使用用户 dstokes 、密码 password 登录本地系统上的 demo 库。db 是一个指针,指向 demo 库。
复制$ mysqlsh dstokes:password@localhost/demo
JS> db.createCollection("example")
JS> db.example.add(
{
Name: "Dave",
State: "Texas",
foo : "bar"
}
)
JS>1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.在上面的示例中,我们登录服务器,连接到 demo 库,创建了一个名为 example 的集合,最后插入一条记录;整个过程无需创建表,也无需使用 SQL。只要你能想象的到,你可以使用甚至滥用这些数据。这不是一种代码对象与关系语句之间的映射器,因为并没有将代码映射为 SQL;新协议直接与服务器层打交道。
新 shell 看起来挺不错,你可以用其完成很多工作;但你可能更希望使用你选用的编程语言。下面的免费源码下载例子使用 world_x 示例数据库,搜索 _id 字段匹配 CAN. 的记录。我们指定数据库中的特定集合,使用特定参数调用 find 命令。同样地,操作也不涉及 SQL。
复制var mysqlx = require(@mysql/xdevapi);
mysqlx.getSession({ //Auth to server
host: localhost,
port: 33060,
dbUser: root,
dbPassword: password
}).then(function (session) { // use world_x.country.info
var schema = session.getSchema(world_x);
var collection = schema.getCollection(countryinfo);
collection // Get row for CAN
.find("$._id == CAN")
.limit(1)
.execute(doc => console.log(doc))
.then(() => console.log("\n\nAll done"));
session.close();
})1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.25.26.27.28.29.30.31.32.33.下面例子使用 PHP,搜索 _id 字段匹配 USA 的记录:
复制
// Connection parameters
$user = root;
$passwd = S3cret#;
$host = localhost;
$port = 33060;
$connection_uri = mysqlx://.$user.:.$passwd.@.$host.:.$port;
echo $connection_uri . "\n";
// Connect as a Node Session
$nodeSession = mysql_xdevapi\getNodeSession($connection_uri);
// "USE world_x" schema
$schema = $nodeSession->getSchema("world_x");
// Specify collection to use
$collection = $schema->getCollection("countryinfo");
// SELECT * FROM world_x WHERE _id = "USA"
$result = $collection->find(_id = "USA")->execute();
// Fetch/Display data
$data = $result->fetchAll();
var_dump($data);
?>1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.25.26.27.28.29.30.31.32.33.34.35.36.37.38.39.40.可以看出,在上面两个使用不同编程语言的例子中,find 操作符的用法基本一致。这种一致性对跨语言编程的开发者有很大帮助,对试图降低新语言学习成本的开发者也不无裨益。
支持的语言还包括 C、Java、Python 和 JavaScript 等,未来还会有更多支持的语言。
我会告诉你使用 NoSQL 方式录入的数据也可以用 SQL 方式使用?换句话说,我会告诉你新引入的 NoSQL 方式可以访问旧式关系型表中的数据?现在使用 MySQL 服务器有多种方式,作为 SQL 服务器,作为 NoSQL 服务器或者同时作为两者。
OPPOR9s手机的全面评测(颠覆你的手机体验,OPPOR9s是个不可忽视的选择)2025-11-05 08:47
微软最新版如何?(一探微软最新版本的功能和用户体验)2025-11-05 08:30
萝卜XP系统安装教程(详细讲解如何安装和配置萝卜XP系统,让你的电脑焕然一新!)2025-11-05 07:46
索尼手机定位功能全面解析(探索索尼手机定位功能的多样化应用)2025-11-05 07:42
小米6手机散热性能解析(小米6散热怎么样?)2025-11-05 07:30
如何制作启动盘U盘(简单操作教你制作启动盘U盘,让电脑安全启动)2025-11-05 07:09
微云同步盘(了解微云同步盘的功能与优势,提升工作效率)2025-11-05 07:06
联想太阳能(清洁、高效、可持续的能源解决方案)2025-11-05 07:02
以炫龙毁灭者P6清灰教程2025-11-05 07:01
苹果7充电细说(探索苹果7充电方式的优劣与技巧)2025-11-05 06:55
酷派8730(一部拥有卓越性能和实惠价格的手机,你值得拥有!)2025-11-05 09:28
用P10拍摄风景的魅力(探索P10相机的景观摄影潜力)2025-11-05 09:20
摩托罗拉GP2000(便携、耐用、全方位通信,满足商业通讯需求)2025-11-05 07:45
深度系统硬盘安装Win7系统教程(详细步骤带你轻松安装Win7系统)2025-11-05 07:44
探索OfficeOSX(领先的办公软件在苹果操作系统下的完美结合)2025-11-05 07:33
乐购分期手机的使用体验(方便快捷的分期购手机方式,让你轻松拥有心仪的手机)2025-11-05 07:22
电脑U盘启动盘教程(快速创建U盘启动盘,助您解决电脑故障)2025-11-05 07:21
利用惠普笔记本通过USB安装系统的教程(详解惠普笔记本如何通过USB进行系统安装)2025-11-05 07:20
解锁哔哩哔哩缓存限制,畅享高清视频!(教你如何利用吾爱破解解除哔哩哔哩缓存限制)2025-11-05 06:52