一条sql语句解决的复杂业务,请往下看:     业务介绍:一个单位有多个立项(立项信息表里有单位id),每个立项可能被预警多次(预警信息表里的uuid字段的值里包含有立项id或单位id),每个预警事件又可能被督办多次(督办信息表里有预警id),最后需要统计出每个单位一年被督办的总次数(total) 查询涉及的表有:立项表(special_task).预警事件表(alarm_event).预警被督办信息表(alarm_action_status_history) Sql语句:如下图所示…
1.对查询进行优化,应尽量避免全表扫描,首先应考虑在where及order by涉及的列上建立索引. 2.应尽量避免在where子句中对字段进行null值判断,创建表时NULL是默认值,但大多数时候应该使用NOT NULL,或者使用一个特殊的值,如0,-1作为默认值. 3.应尽量避免在where子句中使用!=或<>操作符,MySQL只有对以下操作符才使用索引:<,<=,=,>,>=,BETWEEN,IN,以及某些时候的LIKE. 4.应尽量避免在where子句中使用or…
本文会提到 52 条 SQL 语句性能优化策略. 1.对查询进行优化,应尽量避免全表扫描,首先应考虑在where及order by涉及的列上建立索引. 2.应尽量避免在where子句中对字段进行null值判断,创建表时NULL是默认值,但大多数时候应该使用NOT NULL,或者使用一个特殊的值,如0,-1作为默认值. 3.应尽量避免在where子句中使用!=或<>操作符,MySQL只有对以下操作符才使用索引:<,<=,=,>,>=,BETWEEN,IN,以及某些时候的L…
oracle服务器由数据库以及实例组成,数据库由数据文件,控制文件等物理文件组成,实例是由内存结构+后台进程组成,实例又可以看做连接数据库的方式,在我看来就好比一家公司,实例就是一个决策的办公室,大大小小的决定都要从这个办公室解决. 实例分成内存结构以及后台进程部分. 内存结构主要可以分为:共享池(shared pool),数据库高速缓冲区(data buffer cache),重做日志缓冲区(Redo Log Buffer Cache). 三大内存池: 共享池(shared pool):用来存…
数据库SQL优化大总结 小编最近几天一直未出新技术点,是因为小编在忙着总结整理数据库的一些优化方案,特此奉上,优化总结较多,建议分段去消化,一口吃不成pang(胖)纸 一.百万级数据库优化方案 1.对查询进行优化,要尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如: select id from t where num is null 最好不要给数…
Python和SQL Server 2017的强大功能   原文来自:https://www.red-gate.com/simple-talk/sql/sql-development/power-python-sql-server-2017/     Python是SQL Server 2017的新版本.它的主要目的是允许在SQL Server中使用基于Python的机器学习,但它可以使用的远不止这些,还可以使用任何Python库或框架.为了提供一个可能的示例,Hitendra展示了如何安全地使…
Python和SQL Server 2017的强大功能 摘要: 源:https://www.red-gate.com/simple-talk/sql/sql-development/power-python-sql-server-2017/   作者:Hitendra Patel   翻译:谢雪妮 刘琼滨 许雅莉 赖慧芳 译文: Python是SQL Server 2017的新版本.它的主要目的是允许在SQL Server中使用基于python的机器学习,但它的用途远远不止于此,使用任何Pyth…
说实话,这个问题可以涉及到 MySQL 的很多核心知识,可以扯出一大堆,就像要考你计算机网络的知识时,问你"输入URL回车之后,究竟发生了什么"一样,看看你能说出多少了. 之前腾讯面试的实话,也问到这个问题了,不过答的很不好,之前没去想过相关原因,导致一时之间扯不出来.所以今天,我带大家来详细扯一下有哪些原因,相信你看完之后一定会有所收获,不然你打我. 开始装逼:分类讨论 一条 SQL 语句执行的很慢,那是每次执行都很慢呢?还是大多数情况下是正常的,偶尔出现很慢呢?所以我觉得,我们还得…
博客迁移至: https://www.dboop.com/ 从事DBA工作多年 MYSQL源码也是头一次接触 尝试记录下自己看MYSQL5.7源码的历程 申明:个人Python编程很溜,但是C++还停在白痴水平,源码理解方面有点弱,如发现有错误的地方,轻喷. 博客的题目是看源码,实际上可能会发现在不停的在改源码,没办法,手贱,不改不舒服. 目录: 51ak带你看MYSQL5.7源码1:main入口函数 (2018-03-21) 51ak带你看MYSQL5.7源码2:编译现有的代码 (2018-0…
1.把MySQL当个黑盒子一样执行SQL语句 我们的系统采用数据库连接池的方式去并发访问数据库,然后数据库自己其实也会维护一个连接池,其中管理了各种系统跟这台数据库服务器建立的所有连接 当我们的系统只要能从数据库连接池获取到一个数据库连接之后,我们就可以执行增删改查的SQL语句了 从上图其实我们就可以看到,我们可以通过数据库连接把要执行的SQL语句发送给MySQL数据库. 然后呢?大部分同学了解到这个程度就停下来了,然后大家觉得要关注的可能主要就是数据库里的表结构,建了哪些索引,然后就按照SQL…