久久精品国产亚洲高清|精品日韩中文乱码在线|亚洲va中文字幕无码久|伊人久久综合狼伊人久久|亚洲不卡av不卡一区二区|精品久久久久久久蜜臀AV|国产精品19久久久久久不卡|国产男女猛烈视频在线观看麻豆

    1. <style id="76ofp"></style>

      <style id="76ofp"></style>
      <rt id="76ofp"></rt>
      <form id="76ofp"><optgroup id="76ofp"></optgroup></form>
      1. 千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機(jī)構(gòu)

        手機(jī)站
        千鋒教育

        千鋒學(xué)習(xí)站 | 隨時(shí)隨地免費(fèi)學(xué)

        千鋒教育

        掃一掃進(jìn)入千鋒手機(jī)站

        領(lǐng)取全套視頻
        千鋒教育

        關(guān)注千鋒學(xué)習(xí)站小程序
        隨時(shí)隨地免費(fèi)學(xué)習(xí)課程

        當(dāng)前位置:首頁(yè)  >  技術(shù)干貨  > 為什么mysql要額外加入一個(gè)utf8mb4數(shù)據(jù)類型,而不是原地升級(jí)utf8?

        為什么mysql要額外加入一個(gè)utf8mb4數(shù)據(jù)類型,而不是原地升級(jí)utf8?

        來源:千鋒教育
        發(fā)布人:xqq
        時(shí)間: 2023-10-12 21:14:22 1697116462

        一、mysql要額外加入一個(gè)utf8mb4數(shù)據(jù)類型,而不是原地升級(jí)utf8的原因

        MySQL中原來的utf8編碼是一種三字節(jié)長(zhǎng)的字符串編碼方式,而在Unicode標(biāo)準(zhǔn)中,有一些字符需要使用四字節(jié)長(zhǎng)的編碼方式來表示,而原來的utf8編碼無法支持這樣的字符。因此,MySQL在5.5版本中增加了一種名為utf8mb4的字符集,用來支持這些四字節(jié)長(zhǎng)的字符。

        utf8mb4實(shí)際上是一種可以存儲(chǔ)來自現(xiàn)代Unicode標(biāo)準(zhǔn)中的所有字符的編碼方式,其字節(jié)長(zhǎng)度為1到4個(gè)字節(jié),因此可以支持Unicode編碼的全部字符和表情符號(hào)。升級(jí)utf8字符集可能會(huì)導(dǎo)致現(xiàn)有的編碼數(shù)據(jù)被解釋為錯(cuò)誤的字符,這會(huì)給現(xiàn)有的應(yīng)用程序帶來很大的困擾。因此,在MySQL中增加了utf8mb4這種編碼方式來支持四字節(jié)長(zhǎng)的字符,可以讓舊版的應(yīng)用程序繼續(xù)使用原來的utf8編碼,而新的應(yīng)用程序可以使用utf8mb4編碼來支持更多的字符。

        需要注意的是,在MySQL中使用utf8mb4編碼時(shí),它的存儲(chǔ)方式是與utf8編碼不同的。使用utf8mb4編碼的字符串需要消耗更多的存儲(chǔ)空間,這也需要在應(yīng)用程序設(shè)計(jì)時(shí)考慮到它可能會(huì)占用更多的存儲(chǔ)空間。

        二、mysql介紹

        1、簡(jiǎn)介

        MySQL是一個(gè)關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),由瑞典MySQL AB?公司開發(fā),屬于?Oracle?旗下產(chǎn)品。MySQL 是最流行的關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng)之一,在?WEB?應(yīng)用方面,MySQL是較好的?RDBMS(Relational Database Management System,關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng))應(yīng)用軟件之一。MySQL是一種關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),關(guān)系數(shù)據(jù)庫(kù)將數(shù)據(jù)保存在不同的表中,而不是將所有數(shù)據(jù)放在一個(gè)大倉(cāng)庫(kù)內(nèi),這樣就增加了速度并提高了靈活性。

        MySQL所使用的 SQL 語言是用于訪問數(shù)據(jù)庫(kù)的最常用標(biāo)準(zhǔn)化語言。MySQL 軟件采用了雙授權(quán)政策,分為社區(qū)版和商業(yè)版,由于其體積小、速度快、總體擁有成本低,尤其是開放源碼這一特點(diǎn),一般中小型和大型網(wǎng)站的開發(fā)都選擇 MySQL 作為網(wǎng)站數(shù)據(jù)庫(kù)。

        2、應(yīng)用環(huán)境

        與其他的大型數(shù)據(jù)庫(kù)例如?Oracle、DB2、SQL Server等相比,MySQL自有它的不足之處,但是這絲毫也沒有減少它受歡迎的程度。對(duì)于一般的個(gè)人使用者和中小型企業(yè)來說,MySQL提供的功能已經(jīng)綽綽有余,而且由于 MySQL是開放源碼軟件,因此可以大大降低總體擁有成本。

        Linux作為操作系統(tǒng),Apache?或Nginx作為?Web?服務(wù)器,MySQL 作為數(shù)據(jù)庫(kù),PHP/Perl/Python作為服務(wù)器端腳本解釋器。由于這四個(gè)軟件都是免費(fèi)或開放源碼軟件(FLOSS),因此使用這種方式不用花一分錢(除開人工成本)就可以建立起一個(gè)穩(wěn)定、免費(fèi)的網(wǎng)站系統(tǒng),被業(yè)界稱為“LAMP”或“LNMP”組合。

        3、系統(tǒng)特性

        MySQL使用 C和 C++編寫,并使用了多種編譯器進(jìn)行測(cè)試,保證了源代碼的可移植性支持?AIX、FreeBSD、HP-UX、Linux、Mac OS、NovellNetware、OpenBSD、OS/2 Wrap、Solaris、Windows等多種操作系統(tǒng)為多種編程語言提供了?API。這些編程語言包括 C、C++、Python、Java、Perl、PHP、Eiffel、Ruby、.NET和 Tcl 等支持多線程,充分利用 CPU 資源優(yōu)化的?SQL查詢算法,有效地提高查詢速度既能夠作為一個(gè)單獨(dú)的應(yīng)用程序應(yīng)用在客戶端服務(wù)器網(wǎng)絡(luò)環(huán)境中,也能夠作為一個(gè)庫(kù)而嵌入到其他的軟件中提供多語言支持,常見的編碼如中文的?GB 2312、BIG5,日文的?Shift_JIS等都可以用作數(shù)據(jù)表名和數(shù)據(jù)列名提供?TCP/IP、ODBC?和?JDBC等多種數(shù)據(jù)庫(kù)連接途徑提供用于管理、檢查、優(yōu)化數(shù)據(jù)庫(kù)操作的管理工具支持大型的數(shù)據(jù)庫(kù),可以處理?yè)碛猩锨f條記錄的大型數(shù)據(jù)庫(kù)支持多種存儲(chǔ)引擎MySQL 是開源的,所以你不需要支付額外的費(fèi)用MySQL 使用標(biāo)準(zhǔn)的?SQL數(shù)據(jù)語言形式MySQL 對(duì) PHP 有很好的支持,PHP是比較流行的 Web 開發(fā)語言MySQL是可以定制的,采用了 GPL協(xié)議,你可以修改源碼來開發(fā)自己的 MySQL 系統(tǒng)在線 DDL/更改功能,數(shù)據(jù)架構(gòu)支持動(dòng)態(tài)應(yīng)用程序和開發(fā)人員靈活性(5.6新增)復(fù)制全局事務(wù)標(biāo)識(shí),可支持自我修復(fù)式集群(5.6新增)復(fù)制無崩潰從機(jī),可提高可用性(5.6新增)復(fù)制多線程從機(jī),可提高性能(5.6新增)3倍更快的性能(5.7新增)新的優(yōu)化器(5.7新增)原生JSON支持(5.7新增)多源復(fù)制(5.7新增)GIS的空間擴(kuò)展(5.7新增)

        4、查詢和索引

        只有當(dāng)數(shù)據(jù)庫(kù)里已經(jīng)有了足夠多的測(cè)試數(shù)據(jù)時(shí),它的性能測(cè)試結(jié)果才有實(shí)際參考價(jià)值。如果在測(cè)試數(shù)據(jù)庫(kù)里只有幾百條數(shù)據(jù)記錄,它們往往在執(zhí)行完名列前茅條查詢命令之后就被全部加載到內(nèi)存里,這將使后續(xù)的查詢命令都執(zhí)行得非常快–不管有沒有使用索引。只有當(dāng)數(shù)據(jù)庫(kù)里的記錄超過了 1000 條、數(shù)據(jù)總量也超過了 MySQL 服務(wù)器上的內(nèi)存總量時(shí),數(shù)據(jù)庫(kù)的性能測(cè)試結(jié)果才有意義。

        在不確定應(yīng)該在哪些數(shù)據(jù)列上創(chuàng)建索引的時(shí)候,人們從 EXPLAIN SELECT 命令那里往往可以獲得一些幫助。這其實(shí)只是簡(jiǎn)單地給一條普通的 SELECT 命令加一個(gè) EXPLAIN 關(guān)鍵字作為前綴而已。有了這個(gè)關(guān)鍵字,MySQL 將不是去執(zhí)行那條 SELECT 命令,而是去對(duì)它進(jìn)行分析。MySQL 將以表格的形式把查詢的執(zhí)行過程和用到的索引等信息列出來。

        在 EXPLAIN 命令的輸出結(jié)果里,第1列是從數(shù)據(jù)庫(kù)讀取的數(shù)據(jù)表的名字,它們按被讀取的先后順序排列。type列指定了本數(shù)據(jù)表與其它數(shù)據(jù)表之間的關(guān)聯(lián)關(guān)系(JOIN)。在各種類型的關(guān)聯(lián)關(guān)系當(dāng)中,效率較高的是 system,然后依次是 const、eq_ref、ref、range、index 和 All(All 的意思是:對(duì)應(yīng)于上一級(jí)數(shù)據(jù)表里的每一條記錄,這個(gè)數(shù)據(jù)表里的所有記錄都必須被讀取一遍——這種情況往往可以用一索引來避免)。

        possible_keys 數(shù)據(jù)列給出了 MySQL 在搜索數(shù)據(jù)記錄時(shí)可選用的各個(gè)索引。key 數(shù)據(jù)列是 MySQL 實(shí)際選用的索引,這個(gè)索引按字節(jié)計(jì)算的長(zhǎng)度在 key_len 數(shù)據(jù)列里給出。比如說,對(duì)于一個(gè) INTEGER 數(shù)據(jù)列的索引,這個(gè)字節(jié)長(zhǎng)度將是4。如果用到了復(fù)合索引,在 key_len 數(shù)據(jù)列里還可以看到 MySQL 具體使用了它的哪些部分。作為一般規(guī)律,key_len 數(shù)據(jù)列里的值越小越好。

        ref 數(shù)據(jù)列給出了關(guān)聯(lián)關(guān)系中另一個(gè)數(shù)據(jù)表里的數(shù)據(jù)列的名字。row 數(shù)據(jù)列是 MySQL 在執(zhí)行這個(gè)查詢時(shí)預(yù)計(jì)會(huì)從這個(gè)數(shù)據(jù)表里讀出的數(shù)據(jù)行的個(gè)數(shù)。row 數(shù)據(jù)列里的所有數(shù)字的乘積可以大致了解這個(gè)查詢需要處理多少組合。

        最后,extra 數(shù)據(jù)列提供了與 JOIN 操作有關(guān)的更多信息,比如說,如果 MySQL 在執(zhí)行這個(gè)查詢時(shí)必須創(chuàng)建一個(gè)臨時(shí)數(shù)據(jù)表,就會(huì)在 extra 列看到 usingtemporary 字樣。

        延伸閱讀1:mysql的管理工具

        可以使用命令行工具管理 MySQL 數(shù)據(jù)庫(kù)(命令 mysql 和 mysqladmin),也可以從 MySQL 的網(wǎng)站下載圖形管理工具 MySQL Administrator, MySQL Query Browser 和 MySQL Workbench。phpMyAdmin是由 php 寫成的 MySQ L資料庫(kù)系統(tǒng)管理程程序,讓管理者可用 Web 界面管理 MySQL 資料庫(kù)。phpMyBackupPro也是由 PHP 寫成的,可以透過 Web 界面創(chuàng)建和管理數(shù)據(jù)庫(kù)。它可以創(chuàng)建偽 cronjobs,可以用來自動(dòng)在某個(gè)時(shí)間或周期備份 MySQL 數(shù)據(jù)庫(kù)。另外,還有其他的 GUI 管理工具,例如 mysql-front 以及 ems mysql manager, navicat等等。

        聲明:本站稿件版權(quán)均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
        10年以上業(yè)內(nèi)強(qiáng)師集結(jié),手把手帶你蛻變精英
        請(qǐng)您保持通訊暢通,專屬學(xué)習(xí)老師24小時(shí)內(nèi)將與您1V1溝通
        免費(fèi)領(lǐng)取
        今日已有369人領(lǐng)取成功
        劉同學(xué) 138****2860 剛剛成功領(lǐng)取
        王同學(xué) 131****2015 剛剛成功領(lǐng)取
        張同學(xué) 133****4652 剛剛成功領(lǐng)取
        李同學(xué) 135****8607 剛剛成功領(lǐng)取
        楊同學(xué) 132****5667 剛剛成功領(lǐng)取
        岳同學(xué) 134****6652 剛剛成功領(lǐng)取
        梁同學(xué) 157****2950 剛剛成功領(lǐng)取
        劉同學(xué) 189****1015 剛剛成功領(lǐng)取
        張同學(xué) 155****4678 剛剛成功領(lǐng)取
        鄒同學(xué) 139****2907 剛剛成功領(lǐng)取
        董同學(xué) 138****2867 剛剛成功領(lǐng)取
        周同學(xué) 136****3602 剛剛成功領(lǐng)取
        相關(guān)推薦HOT
        Python特點(diǎn)及應(yīng)用?

        一、Python的特點(diǎn)Python是一種高級(jí)編程語言,由Guido van Rossum于上世紀(jì)90年代初開發(fā),它具有以下特點(diǎn):1、語法簡(jiǎn)潔易讀Python使用縮進(jìn)來表示...詳情>>

        2023-10-12 23:00:52
        為什么Oracle收購(gòu)MySQL后仍保證其開源免費(fèi)?

        一、為什么Oracle收購(gòu)MySQL后仍保證其開源免費(fèi)MySQL在收購(gòu)前一直使用GPL許可分發(fā),而GPL許可是不可撤銷的,這意味著至少被收購(gòu)之前的最后一個(gè)Re...詳情>>

        2023-10-12 22:52:49
        為什么MySQL對(duì)SQL標(biāo)準(zhǔn)中很多基本用法都不支持?

        一、為什么MySQL對(duì)SQL標(biāo)準(zhǔn)中很多基本用法都不支持因?yàn)楫?dāng)年,在微軟.net技術(shù)棧下開發(fā)應(yīng)用,用的就是sql server數(shù)據(jù)庫(kù)。在特性方面,不僅緊跟sql...詳情>>

        2023-10-12 22:49:20
        數(shù)據(jù)庫(kù)與Microsoft Excel有什么區(qū)別?

        一、數(shù)據(jù)庫(kù)與Microsoft Excel的區(qū)別1、結(jié)構(gòu)不同excel即是電子數(shù)據(jù)表,顯示由一系列行與列構(gòu)成的網(wǎng)格。。其中的單元格可以用于存放數(shù)值、計(jì)算式...詳情>>

        2023-10-12 22:47:09
        web頁(yè)面安全是什么?

        一、web頁(yè)面安全是什么Web頁(yè)面安全指的是保護(hù)Web應(yīng)用程序和用戶數(shù)據(jù)免受惡意攻擊和不當(dāng)使用的一系列措施。它旨在確保Web頁(yè)面的機(jī)密性、完整性和...詳情>>

        2023-10-12 22:35:44
        快速通道
        滁州市| 文昌市| 舞钢市| 泽普县| 岑溪市| 沧州市| 玉门市| 万山特区| 黔西| 五常市| 大埔区| 遂昌县| 商水县| 正镶白旗| 拜泉县| 无为县| 宜春市| 古丈县| 象山县| 岳阳市| 上犹县| 尉犁县| 秦皇岛市| 景德镇市| 新余市| 京山县| 慈溪市| 苗栗县| 阿拉善右旗| 洪湖市| 景德镇市| 阜南县| 双辽市| 广南县| 鄂州市| 正安县| 石河子市| 阳东县| 安康市| 乌拉特前旗| 泰来县|