问题标签 [redo-logs]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
sql - 插入语句会比 Oracle 中的合并语句执行得更好吗
请问如果我们不需要进行任何更新,插入语句会比 Oracle 中的合并语句执行得更好吗?
我知道,如果我们需要同时为同一个表运行插入和更新语句,则单个合并语句通常是首选选项。但是如果我只有一个插入语句呢?
我有20张这样的桌子
还有20个这样的临时表
每个 Txn_History 表现在有 4000 万行,我将分批从每个对应的 Txn_History_staging 中插入另外 5000 万行。每批有 100 万行。在每次迭代结束时,将使用 purge 语句删除临时表。
以下是我的合并声明
我的数据库处于归档日志模式(FORCE_LOGGING = 'NO'),我注意到每次迭代需要 2 小时才能运行,并且仍然生成 25GB 归档日志事件 nologging is on。
所以我怀疑合并语句已经生成了归档日志。
如果我使用以下插入语句会更好:
它会有更好的性能(即运行速度更快并且生成的日志更少)吗?
提前致谢!
wal - TDengine的WAL机制对性能的影响
最近在研究TDengine数据库设计模式,了解到TDengine也有类似Oracle的redo log,也就是WAL。日志内容会在mnode中用于存储所有用户、数据库等元数据信息,并在放盘后写入对应的元文件。如果这样会导致数据库表数发生明显变化,读WAL会导致启动taosd太慢而降低性能?如果是这样,TDengine内核机制是如何解决这个问题的?
mysql - 为什么 MySQL InnoDB 重做日志块写入不需要双写?
MySQL InnoDB 重做日志块大小为 512 字节(可能是磁盘中的一个扇区)。我读了磁盘扇区写入原子吗?. 看起来它取决于底层硬件来决定扇区写入是否是原子的。那么如果它不是原子的,InnoDB 重做日志如何保证它不会被破坏呢?
假设磁盘中最后一个日志块未满,那么 InnoDB 引擎会向该块写入更多日志记录并将其刷新到磁盘。突然断电导致只有部分块已写入磁盘。由于该块的校验和不匹配。服务器重新启动后,其他先前提交的事务将丢失。