+ Add cache
+ Optimize sql