MySQL数据类型注意事项

来源:互联网 发布:网络用语 简写 编辑:程序博客网 时间:2024/04/29 15:33

1. TEXT和BLOB

区别:blob可以保存二进制数据,比如图片和音乐。而text只可以保存字符数据。


使用text和blob时,在进行大量的删除操作时,会在数据表中留下很大的空洞。建议定期使用OPTIMIZE TABLE功能对这类表进行碎片整理。

可以使用合成的索引来提高大文本字段(text和blob)的查询性能。

合成索引:添加一个列,用MD5()函数生成散列值,用散列值标识符查找速度会提高很多。但是只可以用于精度匹配,减少I/O,提高效率。

例子

创建表
create table test(id varchar(100),context  blog, hash_value varchar(40)); 
插入数据

insert into test values (1, repeat('shenzhen',2), md5(context))
查找
select  from test where hash_value=md5(repeat('shenzhen',2)); 


如需要进行模糊,则提供了前缀索引 
create index idx_blob on test(context(100)); 

模糊查询

select * from test where context like 'shenzhen%' 

注意%不能放前面,否则索引不会被使用


2. 浮点数和定点数应用要考虑的原则

1.浮点数存在误差。

2.对货币等对精度敏感的数据,要用定点数表示或存储。

3.在编程中,如果用到浮点数,要特别注意误差问题,尽量避免浮点数的比较。

4.注意浮点数中的一些特殊值的处理。

0 0
原创粉丝点击