做产品目录的网站,网站的二级网页关键词,网站做跳转的要求,佛山网站建设公司3lueMySQL 文档存储 可以跳过底层数据结构创建、数据规范化和其它使用传统数据库时需要做的工作#xff0c;直接存储数据。MySQL 可以提供 NoSQL JSON 文档存储Document Store了#xff0c;这样开发者保存数据前无需规范化normalize数据、创建数据库#xff0c;也无需在开发之前…MySQL 文档存储 可以跳过底层数据结构创建、数据规范化和其它使用传统数据库时需要做的工作直接存储数据。MySQL 可以提供 NoSQL JSON 文档存储Document Store了这样开发者保存数据前无需规范化normalize数据、创建数据库也无需在开发之前就制定好数据样式。从 MySQL 5.7 版本和 MySQL 8.0 版本开始开发者可以在表的一列中存储 JSON 文档。由于引入 X DevAPI你可以从你的代码中移除令人不爽的结构化查询字符串改为使用支持现代编程设计的 API 调用。系统学习过结构化查询语言(SQL)、关系理论relational theory、集合set和其它关系数据库底层理论的开发者并不多但他们需要一个安全可靠的数据存储。如果数据库管理人员不足事情很快就会变得一团糟MySQL 文档存储[1] 允许开发者跳过底层数据结构创建、数据规范化和其它使用传统数据库时需要做的工作直接存储数据。只需创建一个 JSON 文档集合document collection接着就可以使用了。JSON 数据类型所有这一切都基于多年前 MySQL 5.7 引入的 JSON 数据类型。它允许在表的一行中提供大约 1GB 大小的列。数据必须是有效的 JSON否则服务器会报错但开发者可以自由使用这些空间。X DevAPI旧的 MySQL 协议已经历经差不多四分之一个世纪已经显现出疲态因此新的协议被开发出来协议名为 X DevAPI[2]。协议引入高级会话概念允许代码从单台服务器扩展到多台使用符合通用主机编程语言样式common host-language programming patterns的非阻塞异步 I/O。需要关注的是如何遵循现代实践和编码风格同时使用 CRUD (Create、 Replace、 Update、 Delete)样式。换句话说你不再需要在你精美、纯洁的代码中嵌入丑陋的 SQL 语句字符串。一个新的 shell 支持这种新协议即所谓的 MySQL Shell[3]。该 shell 可用于设置高可用集群high-availability cluster、检查服务器升级就绪状态upgrade readiness以及与 MySQL 服务器交互。支持的交互方式有以下三种JavaScriptPython 和 SQL。代码示例下面的代码示例基于 JavaScript 方式使用 MySQL Shell可以从 JS 提示符看出。下面我们将使用用户 dstokes 、密码 password 登录本地系统上的 demo 库。db 是一个指针指向 demo 库。$ mysqlsh dstokes:passwordlocalhost/demoJSdb.createCollection(example)JSdb.example.add({Name:Dave,State:Texas,foo:bar})JS在上面的示例中我们登录服务器连接到 demo 库创建了一个名为 example 的集合最后插入一条记录整个过程无需创建表也无需使用 SQL。只要你能想象的到你可以使用甚至滥用这些数据。这不是一种代码对象与关系语句之间的映射器因为并没有将代码映射为 SQL新协议直接与服务器层打交道。Node.js 支持新 shell 看起来挺不错你可以用其完成很多工作但你可能更希望使用你选用的编程语言。下面的例子使用 world_x 示例数据库搜索 _id 字段匹配 CAN. 的记录。我们指定数据库中的特定集合使用特定参数调用 find 命令。同样地操作也不涉及 SQL。varmysqlxrequire(mysql/xdevapi);mysqlx.getSession({//Auth to serverhost:localhost,port:33060,dbUser:root,dbPassword:password}).then(function(session){// use world_x.country.infovarschemasession.getSchema(world_x);varcollectionschema.getCollection(countryinfo);collection// Get row for CAN.find($._id CAN).limit(1).execute(docconsole.log(doc)).then(()console.log(\n\nAll done));session.close();})下面例子使用 PHP搜索 _id 字段匹配 USA 的记录// Connection parameters$userroot;$passwdS3cret#;$hostlocalhost;$port33060;$connection_urimysqlx://.$user.:.$passwd..$host.:.$port;echo$connection_uri.\n;// Connect as a Node Session$nodeSessionmysql_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);?可以看出在上面两个使用不同编程语言的例子中find 操作符的用法基本一致。这种一致性对跨语言编程的开发者有很大帮助对试图降低新语言学习成本的开发者也不无裨益。支持的语言还包括 C、Java、Python 和 JavaScript 等未来还会有更多支持的语言。从两种方式受益我会告诉你使用 NoSQL 方式录入的数据也可以用 SQL 方式使用换句话说我会告诉你新引入的 NoSQL 方式可以访问旧式关系型表中的数据现在使用 MySQL 服务器有多种方式作为 SQL 服务器作为 NoSQL 服务器或者同时作为两者。