漫画赏析:Linux 版 SQL Server
admin 8年前 (2017-05-17) 2645浏览 0评论
在 Linux 内核之中,大家正在静静的等待进程的创建。每个创建的进程会被分配一个进程 ID (PID)。 在那个 Apache 进程高高兴兴的走出去之后,下一位却被要求创建 Linux 版的 SQL Server,这简直让人气的跳起来! 这个愤怒的...
admin 8年前 (2017-05-17) 2645浏览 0评论
在 Linux 内核之中,大家正在静静的等待进程的创建。每个创建的进程会被分配一个进程 ID (PID)。 在那个 Apache 进程高高兴兴的走出去之后,下一位却被要求创建 Linux 版的 SQL Server,这简直让人气的跳起来! 这个愤怒的...
admin 10年前 (2015-07-19) 3458浏览 0评论
最近一段时间由于工作需要,开始关注针对Mysql数据库的select查询语句的相关优化方法。 由于在参与的实际项目中发现当mysql表的数据量达到百万级时,普通SQL查询效率呈直线下降,而且如果where中的查询条件较多时,其查询速度简直无法容忍。曾...
admin 10年前 (2015-01-28) 3270浏览 0评论
在一次测试中,我碰到了一个sql注入的问题,在网上没有搜到解决办法,当时的注入点是在limit关键字后面,数据库是MySQL5.x,SQL语句类似下面这样: SELECT field FROM table WHERE id > 0 ORDER ...
admin 10年前 (2014-11-14) 2747浏览 0评论
问题 有位同学问我,在类似pt-osc场景下,需要将两个表名对调,怎么才能确保万无一失呢? 分析 估计其他同学就笑了,表名对掉还不简单吗,相互RENAME一下嘛。 但是,我们想要的是同时完成表名对调,如果是先后的对掉,可能会导致有些数据写入失败,那怎...
admin 11年前 (2014-07-29) 3404浏览 0评论
通常,我们会采用ORDER BY LIMIT start, offset 的方式来进行分页查询。例如下面这个SQL: SELECT * FROM `t1` WHERE ftype=1 ORDER BY id DESC LIMIT 100, 10; 或...
admin 11年前 (2014-07-24) 3146浏览 0评论
背景 MySQL中在对某个字段做包含匹配时可以用like。 先看这个结构和结果 CREATE TABLE `tb` ( `id` int(11) NOT NULL AUTO_INCREMENT, `user_id` bigint(20) DEFAUL...
admin 11年前 (2014-07-19) 2755浏览 0评论
当前项目中用到了elfhash函数算出HASH值后再进行分表, 当需要在MYSQL里进行查询时比较麻烦,需要先算出HASH值才能确定用户数据被分到哪个表里, 于是把这个函数用SQL写成函数,方便使用。 CREATE DEFINER=`test`@`1...
admin 11年前 (2014-06-27) 2919浏览 0评论
收到一个mysql服务器负载告警,上去一看,load average都飙到280多了,用top一看,CPU跑到了336%,不过IO和内存的负载并不高,根据经验,应该又是一起索引引起的惨案了。 看下processlist以及slow query情况,发...
admin 11年前 (2014-06-03) 3113浏览 0评论
【问题现象】 线上mysql数据库爆出一个慢查询,DBA观察发现,查询时服务器IO飙升,IO占用率达到100%, 执行时间长达7s左右。 SQL语句如下: SELECT DISTINCT g.*, cp.name AS cp_name, c.name...
admin 11年前 (2014-04-28) 2988浏览 0评论
实际线上的场景比较复杂,当时涉及了truncate, delete 两个操作,经确认丢数据差不多7万多行,等停下来时,差不多又有共计1万多行数据写入。 这里为了简单说明,只拿弄一个简单的业务场景举例。 测试环境: Percona-Server-5.6...
admin 11年前 (2014-04-18) 12361浏览 1评论
原来GROUP_CONCAT中,是支持GROUP内排序的,自己好土。。 SELECT student_name, GROUP_CONCAT(DISTINCT test_score ORDER BY test_score DESC SEPARATOR ...
admin 11年前 (2014-02-21) 2871浏览 0评论
某种程度上,学习阅读图形执行计划和学习一门新语言很类似。不同之处是这门语言是基于图标的,而且单词(图标)非常少。每个图标代表了一个操作符,本章里,“图标”和“操作符”可以互换地使用。 前边一章我们遇到了两个操作符(select和table scan)...
admin 11年前 (2014-02-21) 3014浏览 0评论
Getting Started 如果你不是sysadmin、dbcreator、db_owner,那么你需要权限查看执行计划 GRANT SHOWPLAN TO [username] 第一个例子非常简单,打开management studio,键入以...
admin 11年前 (2014-02-21) 3580浏览 0评论
执行计划,简单的说就是查询优化器计算的结果,表示执行被提交查询的效率最高的方式。执行计划告诉你查询是如何被执行的,因此它是DBA诊断低性能查询的基础手段。 1.查询提交后发生了什么 当查询被提交到Sql Server DataBase之后,很多过程就...
admin 11年前 (2014-02-21) 3522浏览 0评论
2.表连接(Table join) 到目前为止我们都是在和单个表打交道,下边我们看下查询中的连接。下边这个查询获取雇员信息,把FirstName和LastName连接起来,这样返回的信息显得更为友好。 ? SELECT e.[Title], ...
admin 11年前 (2014-02-08) 2821浏览 0评论
在性能测试中遇到性能瓶颈最的多地方就是数据库这块,而数据库出问题很多都是索引使用不当导致,根据以往遇到的索引问题做个简单的总结: 本次测试环境为xen的虚拟机配置如下: 操作系统 CentOS release 5.4 Cpu E5645 @ 2.4...
admin 12年前 (2013-06-09) 2540浏览 0评论
很多时候,我们需要知道 MySQL 执行过哪些 SQL 语句,比如 MySQL 被注入后,需要知道造成什么伤害等等。只要有 SQL 语句的记录,就能知道情况并作出对策。服务器是可以开启 MySQL 的 SQL 语句记录功能,从而就能间接地检测到客户端...
admin 12年前 (2013-05-27) 4853浏览 0评论
老方法 传统分页查询,一般通过COUNT()函数事先获知总记录数据$amount select count(*) as amout from tbl_name where uid = 1 然后可以通过ceil($amount / $page_size...