前几天做一个需求用到了sql in 子查询,
大概sql如下
SELECT * FROM table_a WHERE id IN (SELECT id FROM table_id_list)
执行时间150m,完全没法忍受
单独执行
SELECT id FROM table_id_list
秒查,只有七八行结果。
把查询结果写死在sql中
SELECT * FROM table_a WHERE id IN (1,2,3,4,5)
依然秒查
解决方案
再把ID列表select一次
SELECT * FROM table_a WHERE id IN (SELECT id from(SELECT id FROM table
继续阅读 »
目录
Table of Contents
{:toc}
文/Robin
本站推广
币安是全球领先的数字货币交易平台,提供比特币、以太坊、BNB 以及 USDT 交易。
币安注册: https://accounts.binancezh.pro/cn/register/?ref=11190872
邀请码: 11190872
一 引子
很久没写技术文章了,打算最近几周把最近遇到的故障总结下。这篇文章分享周四遇到的故障。
另外,最近有创作欲望,只等时间宽裕。
二 起因
周四一整天,研发反应某台数据库僵死,后面的会话要么连接不上,要么要花费大量的时间返回结果,哪怕是一个简单的查询。
三 处理
首先去监控平台查看服务器以及
继续阅读 »
现象
今天遇到一个慢查询,查询日志找到慢查询语句是这样的:
sql
select * from convert_test where areacode=0001 and period>='20170511' and period<='20170511';
继续阅读 »
今天系统突然响应慢了很多,所以就考虑对目前的系统进行优化,底层mysql开启慢查询日志的记录,同时使用一些测试的工作对网站的性能进行测试。我们使用chrome浏览器进行分析加载速度的时候发现很多没有注意到的细节,这是我们以后运维需要加强学习的地方。我们发现有很多css和js文件都100多kb,造成资源加载的时候会非常慢,同时使用一些在线工具eg阿里测等进行监测,我们确实有很多工作可以做,例如开启tomcat的gzip压缩。
继续阅读 »
文/Robin
本站推广
币安是全球领先的数字货币交易平台,提供比特币、以太坊、BNB 以及 USDT 交易。
币安注册: https://accounts.binancezh.pro/cn/register/?ref=11190872
邀请码: 11190872
Oracle性能调整在工作中经常遇到,比如TopSQL的出现导致系统资源浪费严重、物理读过多导致IO出现瓶颈、独占锁导致事务不能提交、索引建立不合理导致查询速度极慢、PGA或者SGA设置不合理导致内存不足、PCTFREE值设置不合理导致的行链接、热点块等等。作为一个DBA应该实时的监控系统,然后找出问题,再分析问题,最后解决。真正有难度的是找出问题所在,对于大多数
继续阅读 »
MyISAM 是MySQL中默认的存储引擎,一般来说不是有太多人关心这个东西。决定使用什么样的存储引擎是一个很tricky的事情,但是还是值我们去研究一下,这里的文章只考虑 MyISAM 和InnoDB这两个,因为这两个是最常见的。
下面先让我们回答一些问题:
你的数据库有外键吗?
你需要事务支持吗?
你需要全文索引吗?
你经常使用什么样的查询模式?
你的数据有多大?
思考上面这些问题可以让你找到合适的方向,但那并不是绝对的。如果你需要事务处理或是外键,那么InnoDB 可能是比较好的方式。如果你需要全文索引,那么通常来说 MyISAM是好的选择,因为这是系统内建的,然而,我们其实并不会经常地去测试两百万行记录。所以,就算是慢
继续阅读 »
在开发过程中很容易遇到去多张表查询数组组合成一个对象的场景。
有两种方案:
一条大sql直接搞定
把大sql拆分成多条小sql,在程序代码里面再组装对象
more
下面分别分析下各自的优缺点:
大sql
优点:一目了然,程序代码简洁,只需要建立一个连接,在数据量小的情况下效率会高很多。
缺点:在数据量大的情况下响应慢,可能一条大SQL就把整个数据库堵死。垂直拆分情况下sql改动会很大。
多条小sql
优点:在数据量大的情况下效率高。对垂直拆分友好。
缺点:程序代码会变得异常啰嗦,难以维护。
各有利弊,要权衡使用场景。
如果在表数据量巨大的情况下或者数据字段比较有可能做垂直切分的情况下建议或者在做报表这种耗时操
继续阅读 »