成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

不像MySQL的MySQL:MySQL文檔存儲介紹

數據庫 MySQL
MySQL 可以提供 NoSQL JSON 文檔存儲Document Store了,這樣開發者保存數據前無需規范化normalize數據、創建數據庫,也無需在開發之前就制定好數據樣式。


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,接著就可以使用了。

 

JSON 數據類型

所有這一切都基于多年前 MySQL 5.7 引入的 JSON 數據類型。它允許在表的一行中提供大約 1GB 大小的列。數據必須是有效的 JSON,否則服務器會報錯;但開發者可以自由使用這些空間。

 

X DevAPI

舊的 MySQL 協議已經歷經差不多四分之一個世紀,已經顯現出疲態,因此新的協議被開發出來,協議名為 ??X DevAPI??。協議引入高級會話概念,允許代碼從單臺服務器擴展到多臺,使用符合通用主機編程語言樣式common host-language programming patterns的非阻塞異步 I/O。需要關注的是如何遵循現代實踐和編碼風格,同時使用 CRUD (Create、 Read、 Update、 Delete)樣式。換句話說,你不再需要在你精美、純潔的代碼中嵌入丑陋的 SQL 語句字符串。

一個新的 shell 支持這種新協議,即所謂的 ??MySQL Shell??。該 shell 可用于設置高可用集群high-availability cluster、檢查服務器升級就緒狀態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>

在上面的示例中,我們登錄服務器,連接到 ??demo??? 庫,創建了一個名為 ??example?? 的集合,最后插入一條記錄;整個過程無需創建表,也無需使用 SQL。只要你能想象的到,你可以使用甚至濫用這些數據。這不是一種代碼對象與關系語句之間的映射器,因為并沒有將代碼映射為 SQL;新協議直接與服務器層打交道。

 

Node.js 支持

新 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();

})

下面例子使用 PHP,搜索 ??_id??? 字段匹配 ??USA?? 的記錄:

<?PHP

// 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);

?>

可以看出,在上面兩個使用不同編程語言的例子中,??find?? 操作符的用法基本一致。這種一致性對跨語言編程的開發者有很大幫助,對試圖降低新語言學習成本的開發者也不無裨益。

支持的語言還包括 C、Java、Python 和 JavaScript 等,未來還會有更多支持的語言。

 

從兩種方式受益

我會告訴你使用 NoSQL 方式錄入的數據也可以用 SQL 方式使用?換句話說,我會告訴你新引入的 NoSQL 方式可以訪問舊式關系型表中的數據?現在使用 MySQL 服務器有多種方式,作為 SQL 服務器,作為 NoSQL 服務器或者同時作為兩者。 

責任編輯:龐桂玉 來源: Linux中國
相關推薦

2018-06-14 14:45:51

MySQLOracle文檔存儲

2019-05-07 16:19:03

MySQL存儲引擎

2010-10-12 16:29:02

MySQL權限表

2023-11-09 09:26:22

MySQL存儲引擎

2011-01-21 17:28:37

Zimbra

2022-08-18 08:24:19

Mysql數據庫

2010-10-08 13:53:14

2010-10-09 16:04:11

MySQL DATED

2021-10-15 06:43:11

數據庫存儲過程

2010-10-09 15:07:35

MySQL日期

2010-05-19 14:03:41

MySQL 存儲過程

2010-10-08 16:55:44

MySql存儲過程

2018-04-18 09:18:44

數據庫MySQL存儲過程

2010-10-09 16:26:59

mysql存儲過程

2020-11-26 10:33:44

MySQL存儲函數

2021-08-10 14:29:06

MySQL數據庫存儲

2010-06-01 15:09:55

MySQL 存儲過程

2019-01-02 13:03:53

MySQL存儲權限

2010-05-28 11:31:01

MySQL 5.5.3

2010-11-26 15:32:24

MySQL decla
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: xxxxxx国产| 日本精品一区二区三区在线观看视频 | 在线视频一区二区 | 91视频a | 中文字幕成人免费视频 | 国产农村一级国产农村 | 一区二区视频 | 草久免费视频 | 国产乱精品一区二区三区 | 成人欧美一区二区三区在线观看 | 国产福利免费视频 | 亚洲视频免费在线 | 激情欧美一区二区三区中文字幕 | 亚洲一区中文字幕在线观看 | 中文字幕伊人 | 蜜桃毛片| 自拍偷拍一区二区三区 | 亚洲精品久久久一区二区三区 | 日韩一二区 | 欧美视频xxx | 91精品久久久久久久久久入口 | 国产高清一区二区三区 | 日韩在线播放第一页 | 精品亚洲二区 | 国产成人短视频在线观看 | 国产精品 亚洲一区 | 天天久| 不卡一区 | 91中文在线观看 | 欧美精品在欧美一区二区少妇 | 成人精品国产一区二区4080 | 一区二区视频 | 国产乱码精品1区2区3区 | 日本在线播放一区二区 | 在线 丝袜 欧美 日韩 制服 | 久草影视在线 | 91精品国产色综合久久 | 国产美女福利在线观看 | 久久久国产精品网站 | 国产69精品久久久久777 | 久久最新|