单利复利
单利:无论存期时长,只有投资本金计取利息,而之前每期利息不会加入本金计算利息。
复利:将之前每期利息加入本金,作为本金的一部分在下一期计算利息,也就是我们俗称的“利滚利”。
公式
单利计算:本息和=本金(1+单利利率期数)
复利计算:本息和=本金*(1+复利利率)^期数
宁静为篱 淡雅为阶 心自有桃源
单利:无论存期时长,只有投资本金计取利息,而之前每期利息不会加入本金计算利息。
复利:将之前每期利息加入本金,作为本金的一部分在下一期计算利息,也就是我们俗称的“利滚利”。
公式
单利计算:本息和=本金(1+单利利率期数)
复利计算:本息和=本金*(1+复利利率)^期数
日常开发中,我们经常会遇到数据库慢查询。那么导致数据慢查询都有哪些常见的原因呢?今天田螺哥就跟大家聊聊导致MySQL慢查询的12个常见原因,以及对应的解决方法。
大型互联网架构设计,讲究一个四件套组合拳玩法,高并发、高性能、高可用、高扩展。
如果能掌握这四个方面,应付大厂面试以及日常工作中的架构方案设计基本不是什么难题。
今天,Tom哥就带大家学习下高可用都有哪些设计技巧?
入参出参校验是每个程序员必备的基本素养。你设计的接口,必须先校验参数。比如入参是否允许为空,入参长度是否符合你的预期长度。这个要养成习惯哈,日常开发中,很多低级bug都是不校验参数导致的。
比如你的数据库表字段设置为varchar(16),对方传了一个32位的字符串过来,如果你不校验参数,插入数据库直接异常了。
出参也是,比如你定义的接口报文,参数是不为空的,但是你的接口返回参数,没有做校验,因为程序某些原因,直返回别人一个null值。。。
有一张财务流水表,未分库分表,目前的数据量为9555695,分页查询使用到了limit,优化之前的查询耗时16 s 938 ms (execution: 16 s 831 ms, fetching: 107 ms),按照下文的方式调整SQL后,耗时347 ms (execution: 163 ms, fetching: 184 ms);
操作: 查询条件放到子查询中,子查询只查主键ID,然后使用子查询中确定的主键关联查询其他的属性字段;
原理: 减少回表操作,利用延迟关联或者子查询优化超多分页场景。
-- 优化前SQL
SELECT 各种字段
FROM `table_name`
WHERE 各种条件
LIMIT 0,10;-- 优化后SQL
SELECT 各种字段
FROM `table_name` main_tale
RIGHT JOIN
(
SELECT 子查询只查主键
FROM `table_name`
WHERE 各种条件
LIMIT 0,10;
) temp_table ON temp_table.主键 = main_table.主键