[…] 在之前的《LINUX上MYSQL优化三板斧》中,我们建议大家把 vm.swappiness = 0 设置好。来尽量避免MySQL的服务器内存被交换出去。这样Linux在把内存交换出去时更偏向于将cache页交换出去,而不是将inactive页交换出去。详细描述请参考:http://hatemysql.com/?p=463。 […]
用途说明: jenkins:用于自动化测试构建发布 gitlab:作为代码托管服务 redmine:作为项目管理和bug管理,通过jenkins整合redmine实现自动化发布提醒 系列文章只针对jenkins自身使用做详细介绍,gitlab/redmine可使用bitnami stacks一键部署(https://bitnami.com/stack/gitlab、https://bitnami.com/stack/redmine)或者使用docker容器来部署环境(后期文章将对其详细介绍) 测试环境:PHP项目(jenkins安装初始化略) 创建简单的集成项目 点击新建 –Item名称:项目1– 勾选构建一个自由风格的软件项目 添加代码库 触发构建策略 添加构建脚本 release.sh #!/bin/bash cd /gitrepos/project1 git checkout master git pull origin master rsync -avH --delete --progress --exclude=robots.txt --exclude=.gitignore --exclude=database.php --exclude=.git --exclude=.DS_Store --exclude="*.tar" '-e ssh -p 11000' cd /gitrepos/project1 …
[获取更多]我们使用EXPLAIN解析SQL执行计划时,如果有下面几种情况,就需要特别关注下了:
首先看下 type 这列的结果,如果有类型是 ALL 时,表示预计会进行全表扫描(full table scan)。通常全表扫描的代价是比较大的,建议创建适当的索引,通过索引检索避免全表扫描。此外,全索引扫描(full index scan)的代价有时候是比全表扫描还要高的,除非是基于InnoDB表的主键索引扫描。
再来看下 Extra 列的结果,如果有出现 Using temporary 或者 Using filesort 则要多加关注:
Using …
[获取更多]Q:
一个优化问题: 语句如下,其中id为自增id,follow_time上有索引而且计划走了索引。不加desc
查询速度很快,但是加上desc后速度极慢,这是为什么呢?该怎么优化?
select id,follow_time from push_product_to_user as p where
p.follow_time <= 1433087999 and p.follow_time
>= 1430409600 ORDER BY p.id desc limit
0,10;
A:
1 ORDER BY p.id,可能会导致走id上的索引
2 follow_time上有索引而且计划走了索引,则表明查询是用此列上的索引进行的,没有利用id列上的索引,所以排序操作需要进行(但需要贴出执行计划,然后进行分析)
3 MySQL的DESC只是语法级别支持,优化器和存储引擎没有支持,内部处理时只是悄悄把DESC转为ASC,然后把处理结果倒序输出,所以DESC操作本身更耗时
…