接着上期说,上期没写一条sql就把数据查询出来了,那如果要保存或者更新数据怎么办呢?能不能自己写sql呢?保存数据@GetMapping("save")//保存数据public void save(@RequestBody User user){ userJpa.
前几天有个朋友出去面试,被面试官问到MySQL自增主键id用完了怎么办?我们在定义MySQL表时,为了性能考虑,一般会使用MySQL的自增主键id,每个自增id都会定义一个初始值,一般从1开始,然后不停得增加步长。
如果是这种情况,InnoDB会自动帮你创建一个不可见的、长度为6字节的row_id,而且InnoDB维护了一个全局的 dictsys.row_id,所以未定义主键的表都共享该row_id,每次插入一条数据,都把全局row_id当成主键id,然后全局row_id加1该全局row_i
但是一旦涉及到分库分表,就会引申出分布式系统中唯一主键ID的生成问题,当我们使用mysql的自增长主键时,充分感受到了它的好处:整个系统ID唯一,ID是数字类型,而且是趋势递增的,ID简短,查询效率快,在分布式系统中显然由于单点问题无法使用mysql自增长了,此时需要别的解决方案来支撑分布式业务。