摘要: 1.这个语句可以查询最后一次查询的消耗。mysql在选择索引的时候会选择相对消耗小的索引来使用。show status like ‘%last_query_cost%’;2.永恒定率:T(时间) = S(总量)/V(速度) S指SQL所需访问的资源总量,V指SQL单位时间所能访问的资源量,T自然就是SQL执行所需时间了;我们为了获得SQL最快的执行时间,可以根据公式定义上去反推:在S不变的情况下,我们可以提升V来降低T:通过适当的索引调整,我们可以将大量的速度较慢的随机IO转换为速度较快的顺序IO;通过提升服务器的内存,使得将更多的数据放到内存中,会比数据放到磁盘上会得到明显的速度提升;... 阅读全文
posted @ 2013-05-09 17:41 统一B界 阅读(171) 评论(0) 推荐(0) 编辑
摘要: 当我们在sql中用联合查询的时候,mysql内部机制优化中用于联合驱动的驱动表可能不是我们想要的,就是mysql选 错了驱动表,这样可以用straight_join 这个来强制mysql使用那个表做为驱动表。如:explain SELECT DATE(practicetime) date_time,COUNT(DISTINCT a.userid) people_rowsFROM USER b straight_join test_log aWHERE a.userid=b.userid AND b.isfree=0 AND LENGTH(b.username)>4GROUP BY DAT 阅读全文
posted @ 2013-05-09 16:42 统一B界 阅读(364) 评论(0) 推荐(0) 编辑
摘要: 第一种方法: SELECT * FROM mysqltest aWHERE1 >(SELECT count(*) FROM mysqltest WHERE class = a.class and score>a.score)ORDER BY a.class,a.score DESC; 这种还可以同个... 阅读全文
posted @ 2013-05-09 11:13 统一B界 阅读(567) 评论(0) 推荐(0) 编辑