真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

mysql行格式怎么用 mysql的數(shù)據(jù)格式

mysql數(shù)據(jù)庫怎么設(shè)置編碼格式

1、 編輯MySql的配置文件

在仙桃等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供網(wǎng)站設(shè)計制作、成都網(wǎng)站建設(shè) 網(wǎng)站設(shè)計制作按需策劃,公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),品牌網(wǎng)站設(shè)計,全網(wǎng)營銷推廣,成都外貿(mào)網(wǎng)站制作,仙桃網(wǎng)站建設(shè)費用合理。

MySql的配置文件Windows下一般在系統(tǒng)目錄下或者在MySql的安裝目錄下名字叫my.ini,可以搜索,Linux下一般是/etc/my.cnf

--在 [mysqld] 標簽下加上以下內(nèi)容:

default-character-set = utf8

character_set_server = utf8

注意:如果此標簽下已經(jīng)存在“default-character-set=GBK”類似的內(nèi)容,只需修改即可。

--在 [mysql] 標簽下加上一行

default-character-set = utf8

--在 [mysql.server]標簽下加上一行

default-character-set = utf8

--在 [mysqld_safe]標簽下加上一行

default-character-set = utf8

--在 [client]標簽下加上一行

default-character-set = utf8

2、 重新啟動MySql服務(wù)

Windows可在服務(wù)管理器中操作,也可使用命令行:

net stop mysql 回車

net start mysql 回車

服務(wù)名可能不一定為mysql,請按自己的設(shè)置

Linux下面可是用 service mysql restart

如果出現(xiàn)啟動失敗,請檢查配置文件有沒有設(shè)置錯誤

3、 查看設(shè)置結(jié)果

登錄MySql命令行客戶端:打開命令行

mysql –uroot –p 回車

輸入密碼

進入mysql后 執(zhí)行 :show variables like "% character %";

顯示結(jié)果應(yīng)該類似如下:

| character_set_client | utf8 |

| character_set_connection | utf8 |

| character_set_database | utf8 |

| character_set_results | utf8 |

| character_set_server | utf8 |

| character_set_system | utf8 |

| character_sets_dir | /usr/share/mysql/charsets/ |

如果仍有編碼不是utf8的,請檢查配置文件,也可使用mysql命令設(shè)置:

set character_set_client = utf8;

set character_set_server = utf8;

set character_set_connection = utf8;

set character_set_database = utf8;

set character_set_results = utf8;

set collation_connection = utf8_general_ci;

set collation_database = utf8_general_ci;

set collation_server = utf8_general_ci;

另外:

建立數(shù)據(jù)庫時可以使用以下命令:

create database app_relation character set utf8;

use app_relation;

source app_relation.sql;

修改數(shù)據(jù)庫編碼的命令為:

alter database app_relation character set utf8;

請教怎么用mysql語句輸出指定行的某個列的內(nèi)容,謝謝

import_table(importTable) 的延申功能:可定制化行輸入。

import_table(importTable) 我們之前有介紹過,是一款并行導(dǎo)入各種格式文本的工具,封裝了 MySQL 語句?load data local infile。

比如說要導(dǎo)入一個以 TAB 為分隔符的文本數(shù)據(jù)文件:/tmp/sample_ytt.txt?到表:ytt_new.t1,可以執(zhí)行下面語句:

上面結(jié)果是?load data infile?語句的導(dǎo)入結(jié)果。如果改用 import_table 方法來做同樣的事情,基于 Python 語法,使用方法如下:

那接下來看另外一個需求:在導(dǎo)入文本文件時對每行做預(yù)處理(例如在導(dǎo)入數(shù)據(jù)之前更改列 r2 的值為 mod(r1,10),列 r5 的值為 abs(r4-46) ),這樣可以減少導(dǎo)入后再次處理的時間開銷。

這個需求用?load data infile?語句非常容易實現(xiàn):(導(dǎo)入時更改列 r2 和 r5 的數(shù)據(jù),類似 UPDATE 語法)

那如果要用 util.import_table(importTable) 來實現(xiàn)上面的需求,在 MySQL 8.0.22 之前是沒辦法的。

隨著 MySQL 8.0.22 的發(fā)布,MySQL 對 import_table 方法做了些擴充功能,其中增加了一個選項 “decodeColumns” 可以實現(xiàn)字段的預(yù)先輸入定制化功能,并且還可以更加豐富。

接下來用 import_table 來實現(xiàn)上面的需求,定制化字段 r2 和 r5:

以上 Options 選項,見下圖:

我來具體解釋下上圖的含義:藍色字體 columns 對應(yīng)的數(shù)組分別指定數(shù)據(jù)文件中的每行字段,也就是默認的 TAB 分隔符所分割的每列值,1 和 2 代表占位符,1 代表數(shù)據(jù)文件中每行的第一個列,2 代表數(shù)據(jù)文件中每行的第四列,decodeColumns 字典分別對需要預(yù)先輸入的字段做處理。比如 r1 字段保留為變量 @1,r2 字段對應(yīng) mod(r1,10) 等。

如果還是不太理解變換規(guī)則,可以臨時打開 general log, 上面 import_table(importTable)對應(yīng)的 MySQL 日志為:

以上日志寫的很清楚,內(nèi)部轉(zhuǎn)換為最基本的load data infile語法。

那這里我簡單解讀了下 MySQL 8.0.22 對 MySQL Shell 的一項定制化輸入文本文件的新特性,更多的新特性可以繼續(xù)關(guān)注。

VARCHAR 最多存多少個字符?|mysql系列(3)

前言

上篇《VARCHAR(M) 到底占用多少個字節(jié)?|mysql系列(2)》分享了VARCHAR(M)?占用多少個字節(jié),那VARCHAR 最大能存多少個字符呢?以及了解這些對我們平時的開發(fā)工作中有什么幫助呢?那我們就要了解下存儲引擎中是怎么來處理數(shù)據(jù)的。這里我們還是以InnoDB 為例。

InnoDB數(shù)據(jù)記錄的結(jié)構(gòu)

在《執(zhí)行sql 語句時發(fā)生了什么?|mysql 系列(1)》一文中講到,MySQL服務(wù)器上負責對表中數(shù)據(jù)的讀取和落盤(即寫入磁盤)工作是由存儲引擎 完成的。InnoDB是一個將表中的數(shù)據(jù)存儲到磁盤上的存儲引擎 。這也是mysql 持久化的保證。插入的數(shù)據(jù)記錄在磁盤上的存放方式被稱為行格式或者記錄格式。Mysql 目前有4種行格式:Redundant、Compact、Dynamic、Compressed.

其中:

Redundant 目前貌似很少使用了。

可以用下面的語句來查看行格式。

我們以常用的Compact、Dynamic、Compressed 行格式為例。一條完整的記錄其實可以被分為 記錄的額外信息 和記錄的真實數(shù)據(jù)兩大部分?。Compact、Dynamic、Compressed行格式不同的地方在記錄的真實數(shù)據(jù)部分。我們尋求答案的地方在記錄的額外信息里面。

記錄的額外信息

記錄的額外信息包括:變長字段長度列表、NULL值列表和記錄頭信息。

變長字段長度列表: 比如VARCHAR(M)、VARBINARY(M)、各種TEXT類型,各種BLOB類型,把擁有這些數(shù)據(jù)類型的列稱為變長字段 ;

變長字段占用的存儲空間分為兩部分:

真實數(shù)據(jù)內(nèi)容是就是存的具體的值。那么對于占用的字節(jié)數(shù)該怎么表示呢?

如果列中的字符串都比較短,也就是說內(nèi)容占用的字節(jié)數(shù)比較小,用1個字節(jié)就可以表示,但是如果變長列的內(nèi)容占用的字節(jié)數(shù)比較多,可能就需要用2個字節(jié)來表示。具體用1個還是2個字節(jié)來表示真實數(shù)據(jù)占用的字節(jié)數(shù)。

對于VARCHAR(M)來說:

如果M×L?= 255,那么使用1個字節(jié)來表示真正字符串占用的字節(jié)數(shù)。

如果M×L? 255,則分為兩種情況:

所以,如果最多有2個字節(jié)來表示真正字符串占用的字節(jié)數(shù)的話。2個字節(jié)能表示最大的數(shù)為: 16個2進制位 也就是2的16次方= 65535 。如果VARCHAR(M)類型的列使用的不是ascii字符集,那M的最大取值取決于該字符集表示一個字符最多需要的字節(jié)數(shù)。

舉個例子:

以上就是今天的分享,歡迎拍磚!

mysql 欄格式 compact ,compressed, default, fixed, redundant 的差別或者相關(guān)介紹文章。

Mysql的row_format

在mysql中, 若一張表里面不存在varchar、text以及其變形、blob以及其變形的字段的話,那么張這個表其實也叫靜態(tài)表,即該表的row_format是fixed,就是說每條記錄所占用的字節(jié)一樣。其優(yōu)點讀取快,缺點浪費額外一部分空間。

若一張表里面存在varchar、text以及其變形、blob以及其變形的字段的話,那么張這個表其實也叫動態(tài)表,即該表的row_format是dynamic,就是說每條記錄所占用的字節(jié)是動態(tài)的。其優(yōu)點節(jié)省空間,缺點增加讀取的時間開銷。

所以,做搜索查詢量大的表一般都以空間來換取時間,設(shè)計成靜態(tài)表。

row_format還有其他一些值:

DEFAULT

FIXED

DYNAMIC

COMPRESSED

REDUNDANT

COMPACT

修改行格式

ALTER TABLE table_name ROW_FORMAT = DEFAULT

修改過程導(dǎo)致:

fixed---dynamic: 這會導(dǎo)致CHAR變成VARCHAR

dynamic---fixed: 這會導(dǎo)致VARCHAR變成CHAR


網(wǎng)站欄目:mysql行格式怎么用 mysql的數(shù)據(jù)格式
轉(zhuǎn)載來于:http://weahome.cn/article/doiijpe.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部