记录些项目开发过程中遇到的暗坑

MySQL Tinyint

关于MySQL中的Tinyint类型的使用建议如下:

  1. 对于存储数值较小的情况,推荐使用Tinyint数据类型。
  2. 如果应用场景确实需要表示布尔值,那么应当选择Bit或Bool类型,并且在数据的序列化和反序列化过程中,确保使用Boolean类型而不是整数类型。
  3. 如果某个字段的值域是有限的,那么优先考虑使用Enum或Set类型,这样做不仅可以提高数据存储的效率,还能增强数据的可读性。

需要注意的是:

  1. 尽管Tinyint(1)在字段定义时指定的显示宽度为1,但实际上它能够存储一个字节(byte即8位)的值,这意味着它可以存储从-128到127的整数(有符号)或0到255的整数(无符号)。
  2. 许多流行的ORM(对象关系映射)工具和序列化库会将Tinyint(1)默认解释为Boolean类型,这可能会导致非0或1的数值在处理过程中被错误地转换为布尔值,从而造成数据丢失。因此,在使用Tinyint(1)时,必须小心处理,以避免这种情况的发生。

参考资料:

https://dev.mysql.com/doc/refman/5.7/en/numeric-type-syntax.html

Sharding Sphere

项目上线后,如果需要新增数据库字段,关于Sharding Sphere的使用,有以下几点注意事项:

  1. 当分库中的数据库表新增字段且该字段位于表的末尾时,这一操作不会对原有字段的读取造成影响。
  2. 若新增字段不在表的末尾位置,使用select *查询时,将会影响到后续字段的读取顺序。但是,如果使用select指定具体字段进行查询,则不会受到影响。
  3. 为了避免潜在的问题,建议在后续的数据库SQL编写过程中,禁止使用select *的操作。(这是问题的根本所在)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值