首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> MySQL 資料庫 >> MySQL 綜合教學

MySQL 儲存引擎與資料類型完整指南:InnoDB/MyISAM、數值/日期/字串/二進制

     編輯:MySQL 綜合教學

MySQL 儲存引擎與資料類型完整指南:InnoDB/MyISAM、數值/日期/字串/二進制

理解儲存引擎特性與資料類型選擇,是資料庫設計效能與正確性的基礎。

一、儲存引擎

1. 查看支援引擎

SHOW ENGINES\G;
SHOW VARIABLES LIKE 'have%';

2. 查看預設引擎

SHOW VARIABLES LIKE 'storage_engine%';

3. 修改預設引擎

  • MSI 安裝精靈:選擇 "Multifunctional Database" → InnoDB;"Non-Transaction" → MyISAM
  • 配置檔 my.ini:default-storage-engine=INNODB

二、資料類型完整分類

1. 數值類型

類型位元組有號範圍無號範圍
TINYINT1-128 ~ 1270 ~ 255
SMALLINT2-32768 ~ 327670 ~ 65535
MEDIUMINT3-8388608 ~ 83886070 ~ 16777215
INT / INTEGER4-2147483648 ~ 21474836470 ~ 4294967295
BIGINT8-9223372036854775808 ~ 92233720368547758070 ~ 18446744073709551615

查詢說明:HELP INT;

2. 浮點數、定點數、位類型

類型位元組說明
FLOAT4單精度,約 7 位有效數字
DOUBLE8雙精度,約 15 位有效數字
DECIMAL(M,D) / DEC(M,D)M+2精確定點數,金額必用。M=總位數(含小數點), D=小數位
BIT1~8位元欄位

例:DECIMAL(18,4) → 13 位整數 + 1 小數點 + 4 位小數

3. 日期時間類型

類型位元組範圍/格式適用場景
DATE41000-01-01 ~ 9999-12-31僅需年月日
DATETIME81000-01-01 00:00:00 ~ 9999-12-31 23:59:59完整日期時間
TIMESTAMP41970-01-01 ~ 2038-01-19 (UTC)自動更新為當前時間
TIME3-838:59:59 ~ 838:59:59僅時分秒
YEAR11901 ~ 2155僅年份,節省空間

超出範圍會插入預設值 (0000-00-00 等)

4. 字串類型

類型長度特性
CHAR(M)0~255 字元定長,不足右補空格
VARCHAR(M)0~65535 字元變長,需 1-2 位元組記錄長度

編碼影響:UTF-8 中文 3 位元組,GBK 中文 2 位元組

5. TEXT / BLOB 系列

類型最大長度用途
TINYTEXT / TINYBLOB255 位元組短文本/二進制
TEXT / BLOB65,535 位元組 (64KB)一般文本/二進制
MEDIUMTEXT / MEDIUMBLOB16,777,215 位元組 (16MB)中等長度
LONGTEXT / LONGBLOB4,294,967,295 位元組 (4GB)長文本/大檔案

差異:TEXT 系列存字元 (依字元集),BLOB 系列存位元組 (圖片、音訊、視訊)

6. BINARY / VARBINARY

類型說明
BINARY(M)定長二進制,不足右補 0x00
VARBINARY(M)變長二進制

相當於 CHAR/VARCHAR 的二進制版本

選擇建議

  • 金額、精確計算 → DECIMAL
  • 自動記錄建立/更新時間 → TIMESTAMP / DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
  • 大量文字 → TEXT;二進制檔案 → BLOB
  • 頻繁更新、交易表 → InnoDB;唯讀、日誌、快取 → MyISAM (或 InnoDB 無外鍵)
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved