对MySQL慢查询日志进行分析的基本教程?
开启慢查询日志
mysql>setglobalslow_query_log=1;
定义时间SQL查询的超时时间
mysql>setgloballong_query_time=0.005;
查看慢查询日志的保存路径
mysql>showglobalvariableslike'slow_query_log_file';
查看慢查询
cat/var/log/mysql/slow.log
如何提高mysqlinsert速度?
下面一些方法可以加快
mysql数据库导入数据的速度:
1、最快的当然是直接copy数据库表的数据文件(版本和平台最好要相同或相似);
2、设置innodb_flush_log_at_trx_commit=0,相对于innodb_flush_log_at_trx_commit=1可以十分明显的提升导入速度;
3、使用loaddatalocalinfile提速明显;
4、修改参数bulk_insert_buffer_size,调大批量插入的缓存;
5、合并多条insert为一条:insertintotvalues(a,b,c),(d,e,f),,,
6、手动使用事物;
mongoDB插入速度怎么比MySQL还慢?
几个大型数据库的写入速度都很快的,性能主要看并发量的吧,比如100w的数据写入要多少秒,mongodb在数据量大的时候,并发还是杠杠的,比mysql要强,不过mongodb在数据统计上面还是有些缺陷的,没有mysql好用,这个只是个人观点,想要更加了解mongodb还需要自己多逛逛官网论坛,多敲敲键盘
如何按照时间段打印mysql的慢日志?
在MySQL客户端中输入命令:show variables like '%quer%';其中红框标注的选项是:
-slow_query_log是否记录慢查询。用long_query_time变量的值来确定“慢查询”。-slow_query_log_file慢日志文件路径-long_query_time慢日志执行时长(秒),超过设定的时间才会记日志Linux:在/etc/my.cnf配置文件的[mysqld]选项下增加:
slow_query_log=TRUEslow_query_log_file=/usr/local/mysql/slow_query_log.txtlong_query_time=3Windows:在my.ini配置文件的[mysqld]选项下增加:
slow_query_log=TRUEslow_query_log_file=c:/slow_query_log.txtlong_query_time=3重启MySQL后,可发现已经开启慢查询日志
mysql select insert速度执行起来有点慢,有没有更效率的查询插入语句命令呢?
Mysql 的select insert语句执行速度慢,首先想到是语句是不是优化,有没有更效率的查询插入语句命令,这个应该是不成立的,DDL和DML的语句都是有固定的语法。
MySQL语句优化-EXPLAIN
EXPLAIN 语句可以被当作 DESCRIBE 的同义词来用,也可以用来获取一个MySQL要执行的 SELECT 语句的相关信息。
语法:
EXPLAIN SELECTselect_options或者EXPLAINtbl_name
EXPLAIN tbl_name 语法和 DESCRIBE tbl_name 或 SHOW COLUMNS FROM tbl_name 一样。
- 当在一个 SELECT 语句前使用关键字 EXPLAIN 时,MYSQL会解释了即将如何运行该 SELECT 语句,它显示了表如何连接、连接的顺序等信息。
MySQL语句优化方法
应尽量避免在 where 子句中使用!=或<>操作符,否则将引擎放弃使用索引而进行全表扫描;
应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描;
应尽量避免在 where 子句中对字段进行表达式操作,这将导致引擎放弃使用索引而进行全表扫描;
in 和 not in 也要慎用,否则会导致全表扫描。