做后端开发的同学做数据存储肯定会需要用到数据库,比如Mysql,Oracle,现在开源的Mysql用的比较多。
记得多年前使用Sql Server和Oracle这种闭源数据库,写了大量的复杂SQL语句,表关联都能达到四五个之多,子查询也能嵌套三四层,反正就是满足查询出来数据的需求,而且感觉自己还挺厉害,能写出这么复杂的SQL语句,在上面两个数据库上执行还挺快,数据量大了以后,把复杂的SQL语句抛给DBA定向优化一下,查询效率杠杠的。多年以前还写过大量的存储过程和触发器,那代码结构,几乎能让接手的人崩溃,比没写注释的代码还乱,感觉动一个标点系统就跑不起来。
现在使用Mysql多一点了,从以前的语句迁移到Mysql里也不能高效的跑起来了,存储过程也不想写了,于是就重新设计。让SQL语句尽量的简单,这是最重要的一条。然后就是索引要建对。貌似现在数据库层面除了这两条以外,没有其他复杂的东西了。数据量的问题dba去搞定。开发这边只要保证简单的查询,至少不能关联很多表,嵌套很多子查询。大量的数据处理逻辑放到代码里了。并发量大的将数据加到Redis里,至于数据一致性问题,再写逻辑代码保证。反正现在写代码的复杂性多于以前写SQL的复杂性了。