mysql数据库优化课程---3、数据库设计是什么

mysql数据库优化课程---3、数据库设计是什么

一、总结

一句话总结:

就是设计各个字段及各个字段类型

1、char,varchar,text同存'ABC'的存储空间为多少?

char(255):255
varchar:4
text:5

列类型

存储需求

CHAR(M)

M个字节,0 <= M <= 255

VARCHAR(M)

L+1个字节,其中L <= M 且0 <= M <= 65535(参见下面的注释)

BINARY(M)

M个字节,0 <= M <= 255

VARBINARY(M)

L+1个字节,其中L <= M 且0 <= M <= 255

TINYBLOB, TINYTEXT

L+1个字节,其中L < 28

BLOB, TEXT

L+2个字节,其中L < 216

MEDIUMBLOB, MEDIUMTEXT

L+3个字节,其中L < 224

LONGBLOB, LONGTEXT

L+4个字节,其中L < 232

ENUM('value1','value2',...)

1或2个字节,取决于枚举值的个数(最多65,535个值)

SET('value1','value2',...)

1、2、3、4或者8个字节,取决于set成员的数目(最多64个成员)

2、text的范围有多大?

65,535

    TEXT[(M)]

最大长度为65,535(216–1)字符的TEXT列。

3、varchar的最大值是多少?

并不是255,而是65535:这里的是字符数,而不是字节数,也就是65535个中文字符或者英文字符

4、人们对于类型(varchar,text等等)使用习惯是什么?

255以内:varchar
65535以内:text
更大:mediumtext或者longtext

5、存储时间一般用的是什么?

int,因为存的是时间戳:int还方便加减乘除,比如设置vip

6、如何设置vip时间一年?

最开始开通vip的时候就写了一年后的时间戳,每次登陆的时候判断这个时间戳有没有过期

二、内容在总结中

1、相关知识

表字段类型:
1.数值
1)tinyint
a.有符号
-128到+127

b.无符号
0到255

2)smallint
a.有符号
-32768到32767

b.无符号
0-65535

3)mediumint
a.有符号
-8388608到8388607

b.无符号
0-16777215

4)int
a.有符号
-2147483648到2147483647

b.无符号
0-4294967295

5)bigint
a.有符号
-9223372036854775808到9223372036854775807

b.无符号
0-18446744073709551615

2.字符串
1)char
2)varchar
3)text

3.日期时间
int

有符号数值:
create table t1(
id int
);

无符号数值:
create table t2(
id int unsigned
);

char类型:
create table t3(
username char(5)
);

varchar类型:
create table t4(
username varchar(5)
);

日期类型:
create table t5(
regtime int
); 

 
原文地址:https://www.cnblogs.com/Renyi-Fan/p/9741239.html