<noframes id="bhrfl"><address id="bhrfl"></address>

    <address id="bhrfl"></address>

    <noframes id="bhrfl"><address id="bhrfl"><th id="bhrfl"></th></address>

    <form id="bhrfl"><th id="bhrfl"><progress id="bhrfl"></progress></th></form>

    <em id="bhrfl"><span id="bhrfl"></span></em>

    全部
    常見問題
    產品動態
    精選推薦

    10 個開發者必知的 MySQL 8.0 新功能

    管理 管理 編輯 刪除

    TOP 10

    1. MySQL 文檔存儲
    2. 默認 utf8mb4 編碼
    3. JSON 增強
    4. CTEs(譯者注:Common Table Expresssions 公共表格表達式)
    5. 窗口函數
    6. 降序索引
    7. 更好的優化器消費模型
    8. MySQL 服務器組件
    9. GIS(譯者注:Geographic Information System 地理信息系統) 提升
    10. InnoDB 引擎的 NO WAIT 和 SKIP \ LOCKED 選項

    1. MySQL 文檔存儲

    這是 MySQL 8.0 中最受期待和最受歡迎的特性 ... 同時他非常容易理解。

    我對 MySQL 文檔存儲非常興奮,我在全球各地展示他快一年的時間,并收到了很多好的反饋。 為什么 MySQL DS 如此優秀? 因為使用一種解決方案你可以處理 SQL 和 NoSQL。你也可以將兩種語言的優勢結合起來。 你可以對相同數據執行 CRUD 命令,同時你也可以在 SQL 中執行如連接多個表及 and/or 集合這種更復雜的查詢。

    同時后端是眾所周知強大的 InnoDB 引擎, MySQL 文檔存儲引擎完全符合 ACID 標準。 因為他都在 MySQL 內部,所以你可以從你熟悉的內容中收益,亦可以將其轉換到文檔存儲: replication, performance_schema, ...

    2. 默認字符集為 utf8mb4

    使用 MySQL 8.0, 我們當然關注現代 Web 應用... 這是指移動端! 當我們提到手機端, 也是表情符號和大量的需要共存的字符集和歸類。

    這就是為什么我們決定將默認的字符集從 latin-1 轉為 utf8mb4。 MySQL支持最新的 Unicode 9.0 基于 DUCET 的新分類, 重音和大小寫敏感的歸類,日語,俄語,...

    3. JSON 強化

    MySQL 帶來了一些新的 JSON 相關變更:

    • 新增 ->> 表達式,作用等于 JSON_UNQUOTE(JSON_EXTRACT())
    • 新的聚合函數JSON_ARRAYAGG()JSON_OBJECTAGG()
    • 新增 JSON_PRETTY()
    • 新的 JSON 工具函數如 JSON_STORAGE_SIZE(), JSON_STORAGE_FREE()

    MySQL 8.0 中 JSON 最重要的優化之一,是提供了一個 JSON_TABLE() 函數。此函數接受 JSON 格式的數據,然后將其轉化為關系型數據表。字段和數據的格式都可以被指定。你也可以對 JSON_TABLE() 以后的數據使用正常的 SQL 查詢,如 JOINS, 聚合查詢等, ... 你可以查閱 @stoker 的博文 ,當然你也可以閱讀 官方文檔 。

    需要注意的是,這不僅僅影響到開發者的使用,MySQL 的執行性能也會受到影響。在老系統中,更新 JSON 時系統會刪除老數據并寫入新的數據,在新系統中,如果你要更新 JSON 數據里的某個字段,正確的做法是直接對 JSON 里的某個字段進行更新,這樣執行效率更佳,并且數據庫主從復制(Replication)性能也會受益。

    4. 公共表格表達式 (CTEs)

    MySQL 8.0 新增了 CTEs 功能(譯者注:Common Table Expresssions 公共表格表達式)。CTE 是一個命名的臨時結果集,僅在單個 SQL 語句的執行范圍內存在,可以是自引用,也可以在同一查詢中多次引用。

    5. 統計分析方法

    針對查詢中的每一行,一個統計分析方法使用該行關聯的行執行計算。 這就像 GROUP BY 方法但他是保留行而不是折疊他們。

    以下是 MySQL 8.0.4 當前實現的統計分析方法列表:

    | 名稱 | 描述 | | --- | --- | | CUME_DIST() | 累計分配值 | | DENSE_RANK() | 當前行在分區的排名, 沒有間隔 | | FIRST_VALUE() | 窗口框架第一行的參數值 | | LAG() | 分區中指定行落后于當前行的參數值 | | LAST_VALUE() | 窗口框架第一行的參數值 | | LEAD() | 分區中引導當前行的參數值 | | NTH_VALUE() | 從第N行窗口框架的參數值 | | NTILE() | 分區中當前行的桶號 | | PERCENT_RANK() | 百分比等級值 | | RANK() | 當前行在分區中的排名,含間隔 | | ROW_NUMBER() | 其分區中的當前行數 |

    6. 降序索引

    在 MySQL 8.0 之前, 當在索引定義中使用 DESC 時該標志將被忽略。 現在不再是這樣了! 現在鍵值按降序存儲。以前, 索引可能被按相反順序掃描,但性能會受到影響??梢园错樞驋呙璧剐蛩饕?,這將更高效。

    7. 更好的優化器開銷模型

    新的優化器開銷模型(Optimizer Cost Model)現在會計算內存緩存數據和硬盤數據。推薦閱讀 ?ystein 的博客文章.

    8. MySQL 服務器模塊

    你可以利用此特性來擴展 MySQL 服務器的功能,這將會比插件更加容易開發和維護,推薦閱讀 官方文檔。

    9. GIS 的提升

    MySQL 8.0 對 GIS(譯者注:Geographic Information System 地理信息系統) 的支持有非常高的提升,功能上直追 PostgreSQL。

    一些例子:

    • 坐標軸將擁有單位
    • 地理坐標系統
    • 坐標軸將不會偏移
    • 坐標軸支持排序
    • 坐標軸支持方向相關性

    10. InnoDB 引擎 NO WAIT 與 SKIP LOCKED

    MySQL 8.0 的 InnoDB 引擎現在可以更好的處理熱行爭搶。 InnoDB 支持 NOWAITSKIP\ LOCKED 選項與 SELECT ... FOR\ SHARESELECT ... FOR\ UPDATE 鎖定讀取語句。 NOWAIT 會在請求行被其他事務鎖定的情況下立即返回語句。 SKIP LOCKED 從結果集中刪除被鎖定的行。 參見 使用 NOWAIT 和 SKIP LOCKED 鎖定并發讀取.

    當然好的 MySQL 8.0 特性列表不會在這里結束, 例如 ="https://dev.mysql.com/doc/refman/8.0/en/regexp.html">支持正則表達式 也是一個剛剛出現在 [8.0.4] 版本中的有趣的特性 (https://mysqlserverteam.com/the-mysql-8-0-4-release-candidate-is-available/)。 新的 SQL GROUPING() 功能, IPV6 和 UUID 操作新業務,更多優化器提示...

    請登錄后查看

    Lily jar 最后編輯于2024-12-19 16:33:55

    快捷回復
    回復
    回復
    回復({{post_count}}) {{!is_user ? '我的回復' :'全部回復'}}
    排序 默認正序 回復倒序 點贊倒序

    {{item.user_info.nickname ? item.user_info.nickname : item.user_name}} LV.{{ item.user_info.bbs_level }}

    作者 管理員 企業

    {{item.floor}}# 同步到gitee 已同步到gitee {{item.is_suggest == 1? '取消推薦': '推薦'}}
    {{item.is_suggest == 1? '取消推薦': '推薦'}}
    沙發 板凳 地板 {{item.floor}}#
    {{item.user_info.title || '暫無簡介'}}
    附件

    {{itemf.name}}

    {{item.created_at}}  {{item.ip_address}}
    打賞
    已打賞¥{{item.reward_price}}
    {{item.like_count}}
    {{item.showReply ? '取消回復' : '回復'}}
    刪除
    回復
    回復

    {{itemc.user_info.nickname}}

    {{itemc.user_name}}

    回復 {{itemc.comment_user_info.nickname}}

    附件

    {{itemf.name}}

    {{itemc.created_at}}
    打賞
    已打賞¥{{itemc.reward_price}}
    {{itemc.like_count}}
    {{itemc.showReply ? '取消回復' : '回復'}}
    刪除
    回復
    回復
    查看更多
    打賞
    已打賞¥{{reward_price}}
    1108
    {{like_count}}
    {{collect_count}}
    添加回復 ({{post_count}})

    相關推薦

    快速安全登錄

    使用微信掃碼登錄
    {{item.label}} 加精
    {{item.label}} {{item.label}} 板塊推薦 常見問題 產品動態 精選推薦 首頁頭條 首頁動態 首頁推薦
    取 消 確 定
    回復
    回復
    問題:
    問題自動獲取的帖子內容,不準確時需要手動修改. [獲取答案]
    答案:
    提交
    bug 需求 取 消 確 定
    打賞金額
    當前余額:¥{{rewardUserInfo.reward_price}}
    {{item.price}}元
    請輸入 0.1-{{reward_max_price}} 范圍內的數值
    打賞成功
    ¥{{price}}
    完成 確認打賞

    微信登錄/注冊

    切換手機號登錄

    {{ bind_phone ? '綁定手機' : '手機登錄'}}

    {{codeText}}
    切換微信登錄/注冊
    暫不綁定
    亚洲欧美字幕
    CRMEB客服

    CRMEB咨詢熱線 咨詢熱線

    400-8888-794

    微信掃碼咨詢

    CRMEB開源商城下載 源碼下載 CRMEB幫助文檔 幫助文檔
    返回頂部 返回頂部
    CRMEB客服