概述 最近开发说某个接口跑的很慢,排查了下发现其中一条sql,数据量不大,但居然要跑451s,下面简单记录一下优化的过程. 问题sql SELECT l.location_gid ENUMVALUE, l.location_name DISPVALUE FROM servprov s, location l WHERE s.domain_name = 'FSL2' AND s.servprov_gid = l.location_gid AND EXISTS (SELECT 1 FROM fsl2…
前言 在一个阳光明媚的下午,电脑右下角传来一片片邮件提醒,同时伴随着微信钉钉的震动,打开一看,应用各种出错,天兔告警,数据库服务器内存爆红,Mysql数据库实例挂掉了. 排查 先交代一下数据库版本: mysql> status -------------- mysql Ver 14.14 Distrib 5.7.22-22, for Linux (x86_64) using 6.2 Connection id: 59568 Current database: Current user: root…
使用ifnull() ) ; 使用判断 public function getGold($table,$querry,$start,$end,$status,$field) { $gold = Db::table($table)->where("$querry BETWEEN $start AND $end AND $status")->sum($field); if ($gold == null){ $gold =0; } return $gold; }…
前言 上一篇我们研究了如何利用索引在数据库里面调优,简要的介绍了索引的原理,更重要的分析了如何选择索引以及索引的利弊项,有兴趣的可以点击查看. 本篇延续上一篇的内容,继续分析索引这块,侧重索引项的日常维护以及一些注意事项等. 闲言少叙,进入本篇的主题. 技术准备 数据库版本为SQL Server2012,前几篇文章用的是SQL Server2008RT,内容区别不大,利用微软的以前的案例库(Northwind)进行分析,部分内容也会应用微软的另一个案例库AdventureWorks. 相信了解S…
背景在上一篇文章里面已经提过了. 现在面临的问题是nextcloud没有mysql数据库,用不起来了. 因为文件没丢,一种方法是启动新的mysql数据库,把文件重新提交一次. 为了程序员的面子,没有选择这么没技术含量的方法.我想通过恢复mysql数据库来解决这个问题. 恢复mysql数据库 于是,在mysql目录里面找找看,发现了一堆binlog文件.上网查了一下,binlog文件里面好像有记录mysql的操作,可以用来恢复数据库. 查看binlog:# ll -th binlog.* 先把最近…
背景: nextcloud的mysql数据库被黑,删库勒索.参考:记一次mysql数据库被勒索(上) mysql数据库恢复成功,nextcloud还是无法连接.参考:记一次mysql数据库被勒索(中) 正文: 经过一番研究,发现nextcloud在第一次数据库配置成功后,会创建一个oc_root的帐号,之后就会使用oc_root帐号来连接数据库. 而oc_root的密码,并不是在配置的时候设置的管理员root的密码,貌似是nextcloud自己生成的. 加密算法应该跟这里面的passwordsa…
牛客网SQL刷题地址: https://www.nowcoder.com/ta/sql?page=0 牛客网数据库SQL实战解析(01-10题): https://blog.csdn.net/u010666669/article/details/104763370 牛客网数据库SQL实战解析(11-20题): https://blog.csdn.net/u010666669/article/details/104863298 牛客网数据库SQL实战解析(21-30题): https://blog…
使用EF Core的Code First,在设计阶段,直接使用Database.EnsureCreated()和EnsureDeleted()可以快速删除.更新最新的数据结构.由于没有什么数据,删除的风险非常低.但是对于已经投入生产的数据库,这个方法就绝对不可行了. 考虑以下场景: 项目已经上线,一直使用本地测试数据库进行开发,本地已经增加和修改了较多数据库表结构,线上数据庞大且实时更新,现在测试完毕需要进行上线. 如果需要更新生产数据库,我能想的有两种方法: 从一开始就使用Migration…
作为一个开发/测试人员,或多或少都得和数据库打交道,而对数据库的操作归根到底都是SQL语句,所有操作到最后都是操作数据,那么对sql性能的掌控又成了我们工作中一件非常重要的工作.下面简单介绍下一些查看oracle性能的一些实用方法: 1.查询每台机器的连接数 select t.MACHINE,count(*) from v$session t group by t.MACHINE 这里所说的每台机器是指每个连接oracle数据库的服务器,每个服务器都有配置连接数据库的连接数,以websphere…
php: 一般是在你要检查的代码开头记录一个时间,结尾记录一个时间.取差值, 数据库SQL的效率    sql的explain(mysql),启用slow query log记录慢查询.   通常还要看数据库设计是否合理,需求是否合理等. 但这个时间一般来说都很快,在一秒以内,所以不能直接用mktime()function getmicrotime(){ list($usec,$sec) = explode(" ",microtime()); $num = ((float)$usec+…