暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

『阶段性汇总指南』— Part One

GrowthDBA 2021-10-01
621

01 PREFACE

前言.

时间过得好快啊,转眼间,这已经是公众号的第30篇文章了,回想一下,从开始写文章到现在,还是有一些成就感的,没想到坚持了这么久。为了方便大家阅读,这篇文章就为大家梳理一下前面文章的目录导航。

02 CONTENTS

文章目录导航.

【自我介绍】
【数据库入门】
【MySQL必知理论】
《MySQL参数之safe_updates》
【MySQL SQL语句】

- 数据查询语言(DQL,Data Query Language)

【MySQL内存结构】

- MySQL InnoDB Engine

《MySQL各种“Buffer”之Adaptive Hash Index》

《MySQL各种“Buffer”之Log Buffer》

- MySQL Server

【MySQL工具】
【MySQL原理】
【生活日常】

03 SUPPLEMENT

补充一个知识点.

之前在一个群里看到这样的一个问题:VARCHER字段定义时必须指定长度吗?

一听这个问题,确实感觉被问住了,我们知道VARCHAR类型是变长存储,每次定义表字段的时候,默认都是指定了字符长度,还真没有试过不指定字符长度会怎么样。

  • 于是有了下面的测试:
  • 场景一VARCHER

CREATE TABLE `test` (  `id` INT(11) NOT NULL AUTO_INCREMENT,  `name` VARCHAR DEFAULT NULL,  PRIMARY KEY (`id`)) ENGINE=InnoDB;

结果:报错

  • 场景二:VARCHAR()

CREATE TABLE `test` (  `id` INT(11) NOT NULL AUTO_INCREMENT,  `name` VARCHAR() DEFAULT NULL,  PRIMARY KEY (`id`)) ENGINE=InnoDB;

结果:报错

  • 场景三:VARCHAR(0)

CREATE TABLE `test` (  `id` INT(11) NOT NULL AUTO_INCREMENT,  `name` VARCHAR(0) DEFAULT NULL,  PRIMARY KEY (`id`)) ENGINE=InnoDB;

结果:成功
  • 接下来,我们再看一下数据是否可以正常插入:

INSERT INTO `test` VALUES(NULL,'a');INSERT INTO `test` VALUES(NULL,NULL);INSERT INTO `test` VALUES(NULL,'');INSERT INTO `test` VALUES(NULL,' ');INSERT INTO `test` VALUES(NULL,'  ');

结果:NULL''可以正常插入,' ''  '显示插入成功,但有警告。

  • 我们在插入的数据中有'空格',所以我们在用LENGTH函数看一下:

SELECT * FROM `test`;SELECT LENGTH(name) FROM `test` WHERE id = 3;SELECT LENGTH(name) FROM `test` WHERE id = 4;

结果:正如警告中所描述的,' ''  '是没有被插入进去的,Data被truncated了。

【结论】

经过上面的测试,我们得到以下结论:

1、VARCHAR类型在创建表时可以指定成VARCHAR(0),但是VARCHAR、VARCHAR()是不行的。

2、空格也会占用数据长度,当超过字段定义的VARCHAR(0) → 字符长度为0时,MySQL会删除超长的数据。

所以,建议大家在使用VARCHAR数据类型时,还是最好定义长度使用,以免发生数据丢失的情况。

04 END

结语.

在前面的文章中,留下了很多出现过但没有详解的知识点,比如Percona开源的MySQL在线DDL变更工具pt-osc、Multi-Range Read(MRR)优化特性、驱动表、被驱动表、MySQL物理&逻辑备份工具等,后续的文章会慢慢的将没有详解的部分补回来。

除了补充前面文章确实的部分,后面的文章还会继续分享关于MySQL(索引、锁、MVCC、SQL优化等)更深入的知识,同时还会分享Linux、Redis、还有其他技术栈ScyllaDB、Greenplum等知识。不忘创建公众号初心:大道至简,贵在坚持,每天进步一点点!~

end

文章转载自 GrowthDBA,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论