1. 唯一性索引
在维护项目A数据库的时候,发现有几张表的设计比较相似,如:
id | userId | username | ... |
其中id做为自增长主键,并无任何业务意义。而userId是业务系统根据业务需要生成系统唯一的逻辑id。但是再看系统该表并没有为该字段添加unique约束。虽然业务上可以保证该字段不会出现重复值,但是发现业务处理上很多查询都是以该字段做为搜索条件,所以有没有unique就显得比较重要了。因为在Mysql数据库中,unique约束的字段会自动添加唯一性索引,这样在数据量比较大的时候,查询性能会有明显的提升。
2. 中文乱码
管理系统A 与 认证服务B 通过web service建立业务数据的推送。操作系统、数据库、管理系统,ws的服务端已确认均为UTF-8编码,ws客户端(C语言实现)供认证服务B调用,通过交流得知认证服务B项目的编码为GB2312,但是在ws的服务端对接收到的数据转码后仍然显示乱码,最后查看了ws客户端代码文件的编码。发现该源文件是windows编写完成后,上传到服务器上,所以编码很有可能用了windows平台默认的中文编码。通过对该源文件另存为UTF-8,Linux上传到服务器后,重新编译,在运行乱码解决。但是遗留的问题认证服务B的编码真的是GB2312吗?这个就不得而知了!