MySQL特殊字段类型选择
金额字段类型选择1.decimaldecimal(M,N) 0<M<65,0<N<30,且N<M,M和N的长度直接影响存储空间 默认情况,表示金额的情况,decimal(16,2),范围是99,999,999,999,999.99 to -99,999,999,999,999.99 占用空间为8个字节 存储时会四舍五入 2.bigint占用空间为8个字节 存储相同大写的数字是,decimal比bigint多1个字节 存入数据库时,decimal会做四舍五入 create table ta (a decimal(4,2),b int); insert into ta (a,b) values(99.006,9900); select * from ta; 12345678910+-------+------+| a | b |+-------+------+| 99.01 | 9900 |+-------+------+ 总结:1.decimal&bigtin在做计算时,都不会丢失精度(float&double在极...
redis-开发规范
1.冷热数据分离,不要将所有数据全部都放到Redis中虽然Redis支持持久化,但是Redis的数据存储全部都是在内存中的,成本昂贵。建议根据业务只将高频热数据存储到Redis中【QPS大于5000】,对于低频冷数据可以使用MySQL/ElasticSearch/MongoDB等基于磁盘的存储方式,不仅节省内存成本,而且数据量小在操作时速度更快、效率更高! 2.不同的业务数据要分开存储不要将不相关的业务数据都放到一个Redis实例中,建议新业务申请新的单独实例。因为Redis为单线程处理,独立存储会减少不同业务相互操作的影响,提高请求响应速度;同时也避免单个实例内存数据量膨胀过大,在出现异常情况时可以更快恢复服务! 3.存储的Key一定要设置超时时间如果应用将Redis定位为缓存Cache使用,对于存放的Key一定要设置超时时间!因为若不设置,这些Key会一直占用内存不释放,造成极大的浪费,而且随着时间的推移会导致内存占用越来越大,直到达到服务器内存上限!另外Key的超时长短要根据业务综合评估,而不是越长越好! 4.对于必须要存储的大文本数据一定要压缩后存储对...