第八章选择合适的数据类型?创建员工表?属性如何定义? CHAR和VARCHAR?CHAR和VARCHAR存储字符串?保存和检索方式不同?CHAR固定长度字符类型?VARCHAR可变长度字符类型CHAR和VARCHAR对比值char(4)存储需求varchar(4)存储需求''' '4个字节''1个字节'ab''ab '4个字节'ab'3个字节'abcd''abcd'4个字节'abcd'5个字节'abcdefg''abcd'4个字节'abcd'5个字节mysql>create table vc(v varchar(4),c char(4));mysql>insert into vc values('ab ','ab ');mysql>select concat(v,'+'),concat(c,'+') from vc;?char固定长度,处理速度快,浪费存储空间;程序需要对尾空格处理;?长度变化不大查询速度快,char类型存储。?MyISAM,char类型?MEMORY,char和varchar均可?InnoDB, TEXT和BLOB?保存较大文本TEXT、BLOB?BLOB保存二进制数据,TEXT保存字符数据?TEXT MEDIUMTEXT LONGTEXT?BLOB MEDIUMBLOB LONGBLOB?存储文本长度不同和存储字节不同?最小存储类型满足需求?BLOB和TEXT值会引起一些性能问题,特别是在执行了大量的删除操作时。?删除操作在数据表留下空洞,插入性能受到影响。?定期使用OPTIMIZE TABLE功能对表碎片整理。OPTIMIZE TABLE碎片整理功能?(1)创建测试表T,字段ID和CONTEXT的类型分别为VARCHAR(100)和TEXT。mysql>create table t (id varchar(100),context text);?(2)表T插入大量记录,使用REPEAT函数插入大字符串mysql>insert into t values(1,repeat('haha',100));mysql>insert into t values(2,repeat('haha',100));mysql>insert into t values(3,repeat('haha',100));mysql>select * from t;?(3),,?(4)从表T中删除ID为“1”的数据,这些数据占总数据量的1/3;mysql>delete from t where id=1;?(5) ?(6)表优化操作mysql>optimize table t;?(7)
第八章选择合适的数据类型-课件(PPT·精·选) 来自淘豆网www.taodocs.com转载请标明出处.