About me:Oracle ACE pro,optimistic,passionate and harmonious. Focus on ORACLE,MySQL and other database programming,peformance tuning,db design, j2ee,Linux/AIX,Architecture tech,etc
全部博文(176)
发布时间:2025-02-20 08:40:55
having普通列(非聚合条件)提升到where里,在分组之前过滤,如果having的普通列可以走索引效率好,这种提升有好处
测试下来,只有pg支持,MySQL文档说支持,但是测试部支持,oracle不支持
能放到where里的条件不要放到having里,是编写SQL的准则之一......【阅读全文】
发布时间:2025-02-18 22:03:41
MySQL的RR模式下,快照读按照第一次select创建的readview读取快照数据,这是表级的,整个表所有行的快照都是在这个时间点。
快照读又叫一致性读(consistent read),unlock read,不加锁(元数据锁还是有的,行锁没有,就是普通SELECT)。
DML包括FOR UPDATE,FOR SHARED是当前读,会读取最新快照的数据,这类似幻读了。
普通SELECT在RR隔离级别下都是可重复读,快照读,除非混合了UPDATE,那么之后的SELECT会读取到本事务修改的数据,像普通的FOR UPDATE,FOR SHARE,
他们会读取到最新提交的数据,但是不影响后续的普通SELECT还是快照读,还是看不到新提交的数据。
......【阅读全文】
发布时间:2025-02-18 22:03:37
MySQL的RR模式下,快照读按照第一次select创建的readview读取快照数据,这是表级的,整个表所有行的快照都是在这个时间点。
快照读又叫一致性读(consistent read),unlock read,不加锁(元数据锁还是有的,行锁没有,就是普通SELECT)。
DML包括FOR UPDATE,FOR SHARED是当前读,会读取最新快照的数据,这类似幻读了。
普通SELECT在RR隔离级别下都是可重复读,快照读,除非混合了UPDATE,那么之后的SELECT会读取到本事务修改的数据,像普通的FOR UPDATE,FOR SHARE,
他们会读取到最新提交的数据,但是不影响后续的普通SELECT还是快照读,还是看不到新提交的数据。
......【阅读全文】