我正在做单元/集成测试。SQLite不支持RIGHT JOIN和FULL OUTER JOIN。有没有办法使用完全存储在内存中的MySQL(或MariaDB)?MySQL有MEMORY表引擎,但这可能会在我的测试中产生不一致。我需要一些替代:内存:我的问题是性能。SQLite数据库内存加快了我的测试过程,但是有些查询与SQLite不兼容。我也不认为如果生产数据库是MariaDB,在SQLite中进行测试是好的做法。
RIGHT JOIN
FULL OUTER JOIN
yyyllmsg1#
MariaDB具有the MEMORY storage engine:它最适合用于其他表中数据的只读高速缓存,或用于临时工作区。这听起来非常适合在自动化测试过程中快速设置和拆卸数据库。
yptwkmov2#
经过几年的研究和测试,我发现解决这个问题的最好方法是使用Docker。更准确地说,是使用tmpfs卷。这样我可以保证数据库不会持久保存在磁盘上,也不会受到I/O阻塞的影响。对于感兴趣的人,Docker有自己的文档介绍这种类型的卷:https://docs.docker.com/storage/tmpfs/
2条答案
按热度按时间yyyllmsg1#
MariaDB具有the MEMORY storage engine:
它最适合用于其他表中数据的只读高速缓存,或用于临时工作区。
这听起来非常适合在自动化测试过程中快速设置和拆卸数据库。
yptwkmov2#
经过几年的研究和测试,我发现解决这个问题的最好方法是使用Docker。更准确地说,是使用tmpfs卷。这样我可以保证数据库不会持久保存在磁盘上,也不会受到I/O阻塞的影响。
对于感兴趣的人,Docker有自己的文档介绍这种类型的卷:https://docs.docker.com/storage/tmpfs/