-
1)查看mysql是否开启慢查询日志 show variables like 'slow_query_log'; 2)设置没有索引的记录到慢查询日志 set global log_queries_not_using_indexes=on; 3)查看超过多长时间的sql进行记录到慢查询日志 show variables like 'long_query_time' 4)开启慢查询日志 set global slow_query_log=on查看全部
-
数据库优化: 1、SQL及索引优化 结构良好的SQL(选择最优的SQL)、 有效索引(索引越多不但会造成写操作的效率下降、而且也会造成读操作效率下降) 2、数据库表结构(满足范式、考虑到查询语句的写法) (根据数据库设计范式,设计出简洁明了的表结构、减少数据的冗余; a、在设计表结构时候要想到怎么样对这个表数据进行查询 b、怎么样设计表结构才是有益于SQL写法的 SQL及索引的优化也是日常工作中所涉及到的最多的一种优化方式 3、系统配置 大多数情况下我们的mysql都是跑在linux上的,系统本身也是会有些限制: a、tcp/ip连接数的限制 b、打开文件数限制(重点) mysql都是基于文件的,每查询一个表时,需要打开一些文件, 一旦打开的文件数超过上限,文件就会无法打开、就会平分IO操作 c、安全性限制 4、 硬件优化 内存:越大越好、mysql查询修改都是load在内存中进行的。 CPU:并不是越多,性能提升就越好的、mysql会对cpu核数进行限制、甚至有些查询只会用到单核 硬盘:会影响IO,可以考虑换用SSD,固态硬盘等等 所以这种IO设备对数据库肯定是有良好的影响的,但是这只是表面、并不能解决mysql内部锁的问题 lock锁是保证数据完整性的一种机制, 虽然IO很快并不能解决阻塞,所以说硬件优化、其实是成本最高,效果最不明显的 如果没有良好的SQL及有效的索引,数据库查询造成大量的慢查询、大量的阻塞,随之并发量就会上去、并发量一上去loading 就会高,会造成应用缓慢查看全部
-
count技巧查看全部
-
count * count id 区别是count *记录null值查看全部
-
慢查日志的格式查看全部
-
mysql慢查询日志查看全部
-
数据库优化从几个方面入手查看全部
-
mysql第三方配置工具查看全部
-
pt-query-digest查看全部
-
mysqldumpslow 男查询分析工具查看全部
-
查找重复及冗余索引查看全部
-
优化的几个方面: SQL及索引、数据库表结构、系统配置、硬件查看全部
-
group by的优化方式查看全部
-
在子查询中如果子表中有重复记录,可以使用distinct去掉重复记录 select distinct table1_name.column1_name from table_name join table2_name on table1_name.column1_name=table2_name.column2_name; 其中column_name 是列名查看全部
-
对max()查询,可以为表创建索引,create index index_name on table_name(column_name 规定需要索引的列),然后在进行查询 count()对多个关键字进行查询,可采用如下格式: 比如在一条SQL中同时查出2006年和2007年电影的数量,语句:select count(release_year='2006' or null) as '2006年电影数量',count(release_year='2007' or null) as '2007年电影数量' from film;查看全部
举报
0/150
提交
取消