Vic*_*vio 5 mysql sql sqlite mariadb
我正在使用单元/集成测试,并且SQLite不完全支持某些SQL功能(例如RIGHT JOIN和FULL OUTER JOIN)。有什么方法可以将MySQL的内容完全存储在内存中的MySQL(或MariaDB)上?
MySQL具有MEMORY表引擎,但是,该表引擎仍可能在我的测试中产生不一致。我需要的是SQLite可以替代:memory:的方法,但具有与MySQL相同的功能。
编辑:
更具体地说,我的问题与单元/集成测试的性能有关。一些教程指出将SQLite与内存中数据库一起使用可以加快测试过程,但是,我的应用程序中的某些查询与SQLite不兼容。如果生产数据库是MariaDB,我也不认为在SQLite中进行测试不是一个好习惯。
我的问题是,在MySQL / MariaDB中进行测试是否还有其他方法可以与SQLite:memory:选项相同。
经过几年的研究和测试这个问题的不同方法。我发现解决这个问题的最好方法是使用 Docker。更准确地说,使用 tmpfs 卷。这样我就可以保证数据库不会持久保留在磁盘上,也不会遭受 I/O 阻塞。
对于那些感兴趣的人,Docker 有自己关于此类卷的文档:https://docs.docker.com/storage/tmpfs/