java插入mysql一条数据,如何返回自增的ID?

在实际操作中,我们常常有一些各种古怪的需求,比如现在这个。数据库的table中有一个自增的id字段,插入数据库后,要求返回刚刚插入那条数据的id。 在单线程情况下,这当然是一个很简单的问题。首先获得数据库的最大id,给将要插入的语句id赋值为MAX+1,然后插入即可。 Oracle也很容易实现,给这个table建立一个sequence,每次都向这个sequence获取下一个id,效率也是价格公道童叟无欺。 但是,给多线程下的mysql返回刚刚插入的id,这似乎有点小为难。一个立刻可以想到的方法是,给插入操作加个锁,插入后查询MAX id,然后解开锁。但是这个显然是不怎么讲究了。 (more…)

mysql修改存储路径参考

linux下存储数据,mysql无疑是个很不错的选择。mysql的默认存储路径为/var/lib/mysql。以前数据库一直不是很大,总共十个G左右的大小,放在默认路径毫无压力。但是今天,因为新导入一个数据库,光是导入数据就是30+G,瞬间就悲剧了,因为我并没有为/目录准备足够的硬盘分区空间。所以,修改配置,迁移数据库存储路径到合适的地方成了最省力的选择。 (more…)