mysql 表名是變數 MySQL深層次的總結

2021-10-18 13:36:38 字數 2931 閱讀 5721

客戶端與伺服器連線 tcp/ip 命名管道和共享記憶體 unix域套接字檔案

處理請求包括:連線管理,解析與優化,儲存引擎

show engines;

create table 表名(

建表語句;

) engine = 儲存引擎名稱;

alter table 表名 engine = 儲存引擎名稱;

啟動選項

使用`defaults-extra-file`可以指定額外的配置檔案搜尋路徑,那些固定的配置檔案路徑也會被搜尋
系統變數

show variables like 'default_storag%'
作用範圍分為這兩種:

設定

語句一:set global default_storage_engine = myisam;

語句二:set @@global.default_storage_engine = myisam;

語句一:set session default_storage_engine = myisam;

語句二:set @@session.default_storage_engine = myisam;

語句三:set default_storage_engine = myisam;

set 系統變數名 = 值`和`set session 系統變數名 = 值`是等價的

狀態變數

show variables like 'character_set_server';
字符集 和 比較規則(排序規則)的應用比方說utf8字符集預設的比較規則就是utf8_general_ci

mysql有4個級別的字符集和比較規則,分別是:

通過啟動選項或者在伺服器程式執行過程中使用set語句修改這兩個變數的值

[server]

character_set_server=gbk

collation_server=gbk_chinese_ci

mysql> create database charset_demo_db

-> character set gb2312

-> collate gb2312_chinese_ci;

query ok, 1 row affected (0.01 sec)

mysql> create table t(

-> col varchar(10)

-> ) character set utf8 collate utf8_general_ci;

query ok, 0 rows affected (0.03 sec)

create table 表名(

列名 字串型別 [character set 字符集名稱] [collate 比較規則名稱],

其他列...

);alter table 表名 modify 列名 字串型別 [character set 字符集名稱] [collate 比較規則名稱];

編譯碼有關的系統變數

character_set_client伺服器解碼請求時使用的字符集character_set_connection伺服器執行過程中使用的字符集character_set_results伺服器向客戶端返回資料時使用的字符集

設定

set names 字符集名; => 可以同時設定三個系統變數

配置檔案 設定啟動選項

[client]

default-character-set=utf8

innodb

4種不同型別的行格式,分別是compactredundantdynamiccompressed行格式

create table 表名 (列的資訊) row_format=行格式名稱

alter table 表名 row_format=行格式名稱

頁是mysql中磁碟和記憶體互動的基本單位,16kb, 也是mysql是管理儲存空間的基本單位。

如果該可變字段允許儲存的最大位元組數(m×w)超過255位元組並且真實儲存的位元組數(l)超過127位元組,則使用2個位元組,否則使用1個位元組。

變長字段長度列表中只儲存值為非null的列內容占用的長度,值為null的列的長度是不儲存的

redundant 記錄的是偏移,沒有null值列表

dynamic,compressed不會在真實資料處儲存字串的前768個字,只記錄在其他頁面的位址

compressed會使用演算法壓縮

mysql用變數名建立表 MySQL變數表命名建立

我正在為minecraft建立乙個伺服器集合的資料庫,以及我設定它的方式,我希望在新增時為每個伺服器建立乙個表.目前,除了我無法獲取正在建立的包含ip位址的表之外,我還能正常工作.我希望 類似於 ip players,其中 ip 被實際的ip位址替換,它將通過正在建立的函式傳送.這是我到目前為止 d...

linux環境下mysql預設是區分表名大小寫的

在linux環境下,mysql預設表明是區分大小寫的,我們可以檢視全域性變數發現 mysql show variables like lower variable name value lower case file system off lower case table names 0 2 row...

linux環境下mysql預設是區分表名大小寫的

在linux環境下,mysql預設表明是區分大小寫的,我們可以檢視全域性變數發現 mysql show variables like lower variable name value lower case file system off lower case table names 0 2 row...