如在 Reactor 中实现读:注册读就绪事件和相应的事件处理器、事件分发器等待事件、事件到来,激活分发器,分发器调用事件对应的处理器、事件处理器完成实际的读操作,处理读到的数据,注册新的事件,然后返还控制权。
内存在大量数据处理的情况下,将会有较大的内存容量需求,可以用-Xmx -Xms -XX:MaxPermSize等参数对内存不同功能块进行划分。我们之前就遇到过内存分配不足,导致虚拟机一直处于full GC,从而导致处理能力严重下降。
存储过程是一组为了完成特定功能的 SQL 语句集,存储在数据库中,经过第一次编译后再次调用不需要再次编译,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。存储过程是数据库中的一个重要对象。
尽量使用前缀来索引,如果索引字段的值很长,最好使用值的前缀来索引。删除不再使用或者很少使用的索引,最左前缀匹配原则,非常重要的原则。尽量选择区分度高的列作为索引,索引列不能参与计算,保持列“干净”:带函数的查询不参与索引。尽量的扩展索引,不要新建索引。
对某些省份或者性别字段,将他们定义为enum类型,enum类型被当做数值型数据来处理,而数值型数据被处理起来的速度要比文本类型块很多。可以保证数据库中数据的一致性和完整性。事务以begin开始,commit关键字结束。