From 5d14e3ecaf0911f144f7805ed5ae5d5a4008cdcc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=BD=95=E6=AD=A3=E6=B5=B7?= <449534191@qq.com> Date: Sun, 19 Apr 2020 01:33:41 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8F=AA=E6=9C=89blob=E5=92=8Ctext=E7=B1=BB?= =?UTF-8?q?=E5=9E=8B=E7=9A=84=E5=88=97=E5=9C=A8=E5=88=9B=E5=BB=BA=E7=B4=A2?= =?UTF-8?q?=E5=BC=95=E6=97=B6=EF=BC=8Cmysql=E6=89=8D=E5=BC=BA=E5=88=B6?= =?UTF-8?q?=E8=A6=81=E6=B1=82=E9=9C=80=E8=A6=81=E6=8C=87=E5=AE=9A=E7=B4=A2?= =?UTF-8?q?=E5=BC=95=E7=9A=84=E5=89=8D=E7=BC=80=E9=95=BF=E5=BA=A6=EF=BC=88?= =?UTF-8?q?=E9=94=AE=E9=95=BF=E5=BA=A6=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 只有blob和text类型的列在创建索引时,mysql才强制要求需要指定索引的前缀长度(键长度) --- notes/MySQL.md | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/notes/MySQL.md b/notes/MySQL.md index 2239d48a..b9fcfa2c 100644 --- a/notes/MySQL.md +++ b/notes/MySQL.md @@ -159,8 +159,13 @@ customer_id_selectivity: 0.0373 ### 4. 前缀索引 -对于 BLOB、TEXT 和 VARCHAR 类型的列,必须使用前缀索引,只索引开始的部分字符。 +对于BLOB和TEXT这种文本类型的列,必须使用前缀索引,在创建索引时必须使用col_name(N)来指定索引的前缀长度(键长度),从而只索引开始的部分字符。 +```sql +CREATE TABLE test (blob_col BLOB, INDEX(blob_col(10))); +``` +https://dev.mysql.com/doc/refman/5.7/en/column-indexes.html#column-indexes-prefix +对于VARCHAR和CHAR类型的列,不强制要求使用前缀索引,根据业务自行选择即可 前缀长度的选取需要根据索引选择性来确定。 ### 5. 覆盖索引