mysql ddl注意 MYSQL DDL注意事項

2021-10-18 07:08:24 字數 1260 閱讀 6480

ddl的基礎語法及設計工具

資料定義語言:它定義了資料庫的結構 和  資料表的結構。

在ddl中,我們常用的功能是增刪改,分別對應的命令是

create、drop和alter。

需要注意的是,在執行ddl的時候,不需要commit,就可以完成執行任務。

我們將字符集設定為utf8,排序規則為utf8_general_ci,行格式為dynamic,就可以定義資料表的最後約定了:

engine = innodb character set = utf8 collate = utf8_general_ci row_format = dynamic;

排序規則:

utf8_unicode_ci和utf8_general_ci對中英文來說沒有實質的差別。

utf8_general_ci: 校對速度快,但準確度稍差。

utf8_unicode_ci: 準確度高,但校對速度稍慢。

若資料庫中有德語、法語或者俄語需求,需使用utf8_unicode_ci。

其他情況用utf8_general_ci即可。

note:

ci是 case insensitive, 即 "大小寫不敏感", a 和 a 會在字元判斷中會被當做一樣的。

格式:fixed :靜態表

在mysql中, 若一張表裡面不存在varchar、text以及其變形、blob以及其變形的字段的話,那麼張這個表其實也叫靜態表,即該錶的row_format是fixed,

就是說每條記錄所占用的位元組一樣。其優點讀取快,缺點浪費額外一部分空間。

dynamic :動態表

若一張表裡面存在varchar、text以及其變形、blob以及其變形的字段的話,那麼張這個表其實也叫動態表,即該錶的row_format是dynamic,

就是說每條記錄所占用的位元組是動態的。其優點節省空間,缺點增加讀取的時間開銷。

所以,做搜尋查詢量大的表一般都以空間來換取時間,設計成靜態表。

排序規則為

utf8_unicode_ci和utf8_general_ci對中英文來說沒有實質的差別。

utf8_general_ci: 校對速度快,但準確度稍差。

utf8_unicode_ci: 準確度高,但校對速度稍慢。

若資料庫中有德語、法語或者俄語需求,需使用utf8_unicode_ci。

其他情況用utf8_general_ci即可。

note:

ci是 case insensitive, 即 "大小寫不敏感", a 和 a 會在字元判斷中會被當做一樣的。

MySql DDL日誌 mysql日誌管理

一 錯誤日誌 1.作用 排查mysql執行時的故障 2.自定義錯誤檔案日誌位置 在配置檔案中,加入 log error 檔案目錄,在重啟資料庫 3.檢視錯誤檔案位置 select log error 二 二進位制日誌 1.作用 主從依賴二進位制檔案 資料恢復靠二進位制檔案 2.開啟二進位制文集 在配...

MySql DDL 常見約束

含義 一種限制,用於限制表中的資料,為了保證表中的資料的準確和可靠性 分類 六大約束 新增約束的時機 1.建立表時 2.修改表時 1 新增列級約束 語法 直接在欄位名和型別後面追加 約束型別即可 只支援 預設 非空 主鍵 唯一 create table stuinfo id int primary ...

MySQL DDL語言筆記

ddl語句 庫和表的管理 庫的管理 一 建立庫 create database 庫名 二 刪除庫 drop database 庫名 表的管理 1.建立表 create table if not exists stuinfo stuid int,stuname varchar 20 gender ch...