mysql

MySQL指令:mysqldumpslow

mysql有一个功能就是可以log下来运行的比较慢的sql语句,默认是没有这个log的,为了开启这个功能,要修改my.cnf或者在mysql启动的时候加入一些参数。如果在my.cnf里面修改,需增加如下几行

long_query_time = 1
log-slow-queries = /var/youpath/slow.log
log-queries-not-using-indexes

long_query_time 是指执行超过多久的sql会被log下来,这里是1秒。
log-slow-queries 设置把日志写在那里,可以为空,系统会给一个缺省的文件host_name-slow.log,我生成的log就在mysql的data目录
log-queries-not-using-indexes 就是字面意思,log下来没有使用索引的query。

» 阅读全文

关键词: mysqldumpslow , 慢查询 , mysql

打开MySQL的慢查询记录功有

mysql慢查询记录日志对于跟踪PHP+MySQL体系下的MySQL负载调优问题很有用处,比如安装了很多Discuz!插件的用户,这样可以大概排查出那些插件有代码问题。

其实启用MySQL的慢查询日志很简单,只需要在MySQL的配置文件里添加log-slow-queries和long_query_time两个参数即可。

Windows下开启MySQL慢查询
MySQL在Windows系统中的配置文件一般是是my.ini找到[mysqld]下面加上

log-slow-queries = F:\MySQL\log\mysqlslowquery.log
long_query_time = 2

Linux下启用MySQL慢查询
MySQL在Windows系统中的配置文件一般是是my.cnf找到[mysqld]下面加上

log-slow-queries=/data/mysqldata/slowquery.log
long_query_time=2

注意:

log-slow-queries = F:\MySQL\log\mysqlslowquery.log为满查询日志存放的位置,一般这个目录要有MySQL的运行帐号的可写权限,一般都将这个目录设置为MySQL的数据存放目录;可以不写地址,将表示在当前服务器上的名称 mysql服务器名称-slow.log

long_query_time=2中的2表示查询超过两秒才记录,建议设置为:0.05

关键词: slow , 慢查询 , mysql

mysql in语句的排序

mysql 5.x

sql 1 : select id from table where id in(3,6,5,2);
此语句所得结果将默认升序排列。如以下
id
===
2
3
5
6
===
sql 2 : select id from table where id in(3,6,5,2) order by substring_index('3,6,5,2',id,1);即可得到以下排序
id
====
3
6
5
2
======

关键词: 排序 , in , mysql

MySQL复制基本教程

mysql支持单向异步复制,复制过程中一个服务器充当主服务器(Master),而一个或多个其它服务器充当从服务器(Slave),利用该特性实现读写分离,是很多大型网站常用的数据库架构。MySQL的replication的配置相对于Oracle来说,要简单的多。本文演示了在同一台windows机器中配置单向异步复制的过程。这里的Replication是异步复制。MySQL的同步复制是MySQL Cluster中的一个特性。

要启用复制特性,MySQL必须使用二进制日志。关于二进制日志的特性,请参考官方手册

» 阅读全文

关键词: 异步复制 , 单向 , mysql

MySQL查询优化程序

在发布一个选择行的查询时, mysql进行分析,看是否能够对它进行优化,使它执行更快。本文我们将研究查询优化程序怎样工作。更详细的信息,可参阅MySQL参考指南中的“Getting Maximum Performance from MySQL”,本文描述了MySQL采用的各种优化措施。(http://www.mysql.com/ 处的MySQL联机参考指南在不断地更新。)

» 阅读全文

关键词: 程序 , 查询 , 优化 , mysql

[转]SQL的优化和注意事项

普通Mysql运行,数据量和访问量不大的话,是足够快的,但是当数据量和访问量剧增的时候,那么就会明显发现mysql很慢,甚至down掉,那么就要考虑优化我们的MySQL了。

优化无非是从三个角度入手:
第一个是从硬件,增加硬件,增加服务器
第二个就是对我们的MySQL服务器进行优化,增加缓存大小,开多端口,读写分开
第三个就是我们的应用优化,建立索引,优化SQL查询语句,建立缓存等等

我就简单的说说SQL查询语句的优化。因为如果我们Web服务器比数据库服务器多或者性能优良的话,我们完全可以把数据库的压力转嫁到Web服务器上,因为如果单台MySQL,或者 Master/Slave 架构的数据库服务器都负担比较重,那么就可以考虑把MySQL的运算放到Web服务器上去进行。当然了,如果你Web服务器比数据库服务器差,那就把压力放在数据库服务器上吧,呵呵。

如果是把MySQL服务器的压力放在Web服务器上,那么很多运算就需要我们的程序去执行,比如Web程序中全部交给PHP脚本去处理数据。单台MySQL服务器,查询、更新、插入、删除都在一台服务器上的话,访问量一大,你会明显发现锁表现象,当对一个表进行更新删除操作的时候,就会拒绝其他操作,这样就会导致锁表,解决这个问题最简单直接的办法就是拿两台MySQL服务器,一台负责查询(select)操作,另外一台负责更改(update/delete/insert),然后进行同步,这样能够避免锁表,如果服务器更多,那么就更好处理了,可以采用分布式数据库架构和数据的散列存储,下面我们会简单说一下。

» 阅读全文

关键词: 注意事项 , sql , 优化 , mysql

Total: 1112Next ›