Linux上有哪些不同的I/O模型,如图所示:
本书旨在帮助程序员改进理解他人、与人沟通,以及与人合作的能力,进而使其在编写软件的过程中变得更有效率。
《sql反模式》读书笔记。
在知道了需要存储哪些数据之后,使用你所知的RDBMS技术特性尽可能高效地实现数据管理。这包含了定义表和索引,以及选择数据类型。你也要使用SQL的“数据定义语言”,比如CREATE TABLE语句。
CREATE TABLE IdGenerator (bug_id SERIAL PRIMARY KEY);
INSERT INTO IdGenerator (bug_id) VALUES (DEFAULT);
ROLLBACK;
SELECT LAST\_INSERT\_ID();
这种方法利用mysql的 LAST_INSERT_ID()函数,能够做到即使同时多个数据库连接session中获取的ID都是独立唯一的。
还需要考虑的地方:1、不同的数据库的多表如何生成唯一ID(可以在所有项目中配置全局数据源,不同数据库的表要唯一ID时,先访问这个数据源的IdGenerator获取唯一ID);2、性能问题,在业务峰值每秒需要生成大量ID时,全局单表的插入性能可能成为瓶颈。
刚刚看到这种方法来生成多表唯一ID,看起来还是用雪花算法更好一点。
![[doge1]](https://upyun.xuanmo.xin/images/smilies/qq/doge.png)
《sql反模式》读书笔记。