-
通过统计信息库information_schma查找一些重复冗余的索引,1.通过查询统计信息表,2.通过拿用第三方的统计工具pt-duplicate-key-checker(用户名,密码,数据库服务器ip),会给出一些优化建议. 如果因为业务变更一些索引已经未使用Mysql当前只能使用慢查询日志配合pt-index-usage来进行index使用分析(如果数据库集群是主从结构的我们需要收集所有的主从慢查询日志). 但在perconMysql和mariaDB中可以通过INDEX_STATISTICS表来查询。查看全部
-
索引字段越小越好,离散程度越大越好!联合索引的前导列一般是离散程度越大越好!查看全部
-
使用limit查询时,尽量利用索引减少表扫描的数量。查看全部
-
如果涉及到表联接的过程中有group by这样的语句,可以先通过group by做为子查询,统计出结果后,再与其它表进行关联查询。查看全部
-
子查询一般优化成join的查询方式,同时需考虑关联键是否存在一对多的关系 如果存在一对多的关系,则可以使用distinct关键字去重.查看全部
-
count(列)如果中间有NULL值,count是不会统计数量的,而count(*)是包含了Null 值。如果指定了查询某个具体的范围或值的话,尽量不使用group by分组统计.查看全部
-
explain:从句,如果extra列的返回值为Using filesort或Using temporary则查询需要优化,一般都出现在ORDER BY 或是GROUP BY上.查看全部
-
pt-query-digest分析慢查询日志文件比mysqldumpslow更丰富: 1.显示日志的时间范围,以及总的sql数量.2.表的统计信息sql响应时间和执行次数。3.具体的sql 解决: 1.查询时间长,查询次数多 2.IO大的sql,分析Rows Examine项,扫描的行数 3.未命中索引的sql,分析Rows Examine与Rows send发送的行数的对比查看全部
-
最小的数据类型 使用简单数据类型,int比varchar类型在mysql处理上简单 尽可能使用not null 定义字段,设置默认值 尽量少用text类型 使用int类型存储日期 使用from_unixtime()将int类型转换为日期 使用unix_timestamp()将日期转换为int查看全部
-
离散程度的大小的判定方法: 计算出数据库中记录不重复数量 select count(distinct row1),count(distinct row2) from table; count()值大的就离散度高。查看全部
-
在where从句,group by从句,order by从句,on从句中出现的列建立索引 索引字段越小越好 离散度大的列放在联合索引的前面查看全部
-
mysql查看全部
-
这个例子中,可以把 explain select actor.first_name,actor.last_name,count(*) from film_actor inner join actor on actor.actor_id = film_actor.actor_id group by actor.actor_id\G 改写为 explain select actor.first_name,actor.last_name,c.cnt from actor inner join (select actor_id,count(*) AS cnt from film_actor GROUP BY actor_id) AS c USING(actor_id)\G查看全部
-
使用join连接时,from table1 join table2 on table1.tid = table2.tid 可以改写为from table1 join table2 USING(tid)。UISNG()中的列名在两表中必须存在~查看全部
-
select count(year='2006' or null) as xx from tablename; 后面的or null会把为null的值跳过,不计入数量中。 这是利用了select count(col_name)的特点,指定列不为空的行数; select count(*) 为所有行数。查看全部
举报
0/150
提交
取消