WEB开发网
开发学院数据库MySQL Mysql入门系列:MySQL查询优化程序 阅读

Mysql入门系列:MySQL查询优化程序

 2006-12-31 10:46:06 来源:WEB开发网   
核心提示: 实际上,还有另外的方法,Mysql入门系列:MySQL查询优化程序(6),即升级到MySQL3.23.2 或更高的版本,它们已经解决了这样的问题,查询执行得就越快,要保证测试相应的查询两次;可能会有某些原因使优化程序不以您所想像的方式对表进行连接,■ 以随机次序检索结果,自MySQL3.2

实际上,还有另外的方法,即升级到MySQL3.23.2 或更高的版本,它们已经解决了这样的问题。

■ 以随机次序检索结果。自MySQL3.23.3 以来,可使用ORDER BY RAND( ) 随机地对结果进行排序。另一技术对MySQL更旧的版本很有用处,那就是选择一个随机数列,然后在该列上进行排序。但是,如果按如下编写查询,优化程序将会让您的愿望落空:

这里的问题是MySQL认为该列是一个函数调用,将认为相应的列值是一个常数,而对ORDER BY 子句进行优化,使此查询失效。可在表达式中引用某个表列来蒙骗优化程序。例如,如果表中有一个名为age 的列,可编写如下查询:

■ 忽略优化程序的表连接次序。可利用STRIGHT_JOIN 强迫优化程序以特定的次序使用表。如果这样做,应该规定表的次序,使第一个表为从中选择的行数最少的表。(如果不能肯定哪个表满足这个要求,可将行数最多的表作为第一个表。)换句话说,应尽量规定表的次序,使最有限制性的选择先出现。排除可能的候选行越早,查询执行得就越快。要保证测试相应的查询两次;可能会有某些原因使优化程序不以您所想像的方式对表进行连接,并且STRAIGHT_JOIN 也可能实际上不起作用。

查看全套"Mysql入门系列教程 ">>>>>

上一页  1 2 3 4 5 6 

Tags:Mysql 入门 系列

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接