MYSQL网站制作之MySQL进阶_SELECT篇(一)
MySQLAB公司的一个高级开发者者表示,“这个特点使得MySQL可以根据你当前的系统的需要来进行调整。”mysql|selectMySQL中SELECT语句的基础语法是:SELECTselect_list,...]rows]]
从这个基础语法能够看出,最复杂的SELECT语句是SELECTselect_list,实践上使用这个最复杂的SELECT语句,你也能够完成很多你等候的功效,起首你能使用它举行MySQL所撑持的任何运算,比方:SELECT1+1,它将前往2;其次,你也能使用它给变量赋值,而在PHP中,使用SELECT语句的这类功效,你就能够自在地使用MySQL的函数为PHP程序举行各类运算,并赋值给变量。在良多的时分,你会发明MySQL具有很多比PHP更加功效壮大的函数。
STRAIGHT_JOIN、SQL_SMALL_RESULT、SQL_BIG_RESULT、HIGH_PRIORITY是MySQL对ANSISQL92的扩大。假如优化器以非最好序次联合表,利用STRAIGHT_JOIN能够加速查询。
SQL_SMALL_RESULT和SQL_BIG_RESULT是一组绝对的关头词。它们必需与GROUPBY、DISTINCT或DISTINCTROW一同利用。SQL_SMALL_RESULT告诉优化器了局会很小,请求MySQL利用一时表存储终极的表而不是利用排序;反之,SQL_BIG_RESULT告诉优化器了局会很小,请求MySQL利用排序而不是做一时表。
HIGH_PRIORITY将付与SELECT比一个更新表的语句更高的优先级,使之能够举行一次优先的疾速的查询。
以上四个关头词的利用办法切实其实对照流畅。侥幸的是,在尽年夜多半情形下,在MySQL中我们完整能够选择不利用这四个关头词。
DISTINCT、DISTINCTROW对查询前往的了局集供应了一个最基础可是很有效的过滤。那就是了局会合只含非反复行。在这里要注重的是,对关头词DISTINCT、DISTINCTROW来讲,空值都是相称的,不管有几NULL值,只选择一个。而ALL的用法就有多此一举之嫌了。它对了局集的发生没有任何影响。
INTO{OUTFILE|DUMPFILE}file_nameexport_options,将了局集写进一个文件。文件在服务器主机上被创立,而且不克不及是已存在的。语句中的export_options部分的语法与用在LOADDATAINFILE语句中的FIELDS和LINES子句中的不异,我们将在MySQL进阶_LOADDATA篇中具体会商它。而OUTFILE与DUMPFILE的关头字的区分是:后前只写一行到文件,并没有任何列或行停止。如果你在一个遵循GPL的自由(开源)项目中使用MySQL,那么你可以遵循GPL协议使用MySQL。然而,如果你的项目不是在GPL协议下的话,你必须为使用MySQL来支付许可费用,或者你可能因为这个因素而将你的项目改为遵循GPL。 入门没那么困难,精通没那么容易 始终遗憾SQLServer的登陆无法分配CPU/内存占用等指标数。如果你的SQLServer给别人分配了一个只可以读几个表的权限,而这个家伙疯狂的死循环进行连接查询,会给你的系统带来很大的负担。 同样会为索引视图等应用带来麻烦。看看行级和事务级的快照数据放在tempdb中,就能感觉到目前架构的尴尬。 SQLServer的异构移植功能个人感觉最好了。(如果对比过SQLServer的链接服务器和Oracle的透明网关的朋友会发现SQLServer的sp_addlinkedserver(openquery)异构数据库系列比Oracle真是强太多了。) 对于微软系列的东西除了一遍遍尝试还真没有太好的办法 而SQLServer如果能像Oracle一样可以为登陆分配如:5%的cpu,10%的内存。就可以解决这个漏洞。 如果我们从集合论(关系代数)的角度来看,一张数据库的表就是一组数据元的关系,而每个SQL语句会改变一种或数种关系,从而产生出新的数据元的关系(即产生新的表)。 原来的计算字段其实和虚拟字段很像。只是管理方面好了而已,性能方面提高不多。但是SQL2005提供了计算字段的持久化,这就提高了查询的性能,但是会加重insert和update的负担。OLTP慎用。OLAP可以大规模使用。
页:
[1]