仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 814|回复: 8
打印 上一主题 下一主题

[学习教程] MYSQL教程之mysql force Index 强迫索引

[复制链接]
若天明 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 20:12:24 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
这一切听起来不错,无疑DBaaS具有很多相对于RDBMS的优势。然而MySQL学习教程,DBaaS也有其局限性,云服务中固有的局限性就是之一。当客户开始将数据放入云端时,他们会遭遇到无法控制的网络性能问题。其他强迫操纵,优先操纵以下:
MySQL经常使用的hint
关于常常利用Oracle的伴侣大概晓得,oracle的hint功效品种良多,关于优化sql语句供应了良多办法。一样,在mysql里,也有相似的hint功效。上面先容一些经常使用的。
强迫索引FORCEINDEX
SELECT*FROMTABLE1FORCEINDEX(FIELD1)…
以上的SQL语句只利用创建在FIELD1上的索引,而不利用别的字段上的索引。
疏忽索引IGNOREINDEX
SELECT*FROMTABLE1IGNOREINDEX(FIELD1,FIELD2)…
在下面的SQL语句中,TABLE1表中FIELD1和FIELD2上的索引不被利用。
封闭查询缓冲SQL_NO_CACHE
SELECTSQL_NO_CACHEfield1,field2FROMTABLE1;
有一些SQL语句必要及时地查询数据,大概其实不常常利用(大概一天就实行一两次),如许就必要把缓冲关了,不论这条SQL语句是不是被实行过,服务器都不会在缓冲区中查找,每次城市实行它。
强迫查询缓冲SQL_CACHE
SELECTSQL_CALHE*FROMTABLE1;
假如在my.ini中的query_cache_type设成2,如许只要在利用了SQL_CACHE后,才利用查询缓冲。
优先操纵HIGH_PRIORITY
HIGH_PRIORITY可使用在select和insert操纵中,让MYSQL晓得,这个操纵优先辈行。
SELECTHIGH_PRIORITY*FROMTABLE1;
滞后操纵LOW_PRIORITY
LOW_PRIORITY可使用在insert和update操纵中,让mysql晓得,这个操纵滞后。
updateLOW_PRIORITYtable1setfield1=wherefield1=…
延时拔出INSERTDELAYED
INSERTDELAYEDINTOtable1setfield1=…
INSERTDELAYEDINTO,是客户端提交数据给MySQL,MySQL前往OK形态给客户端。而这是并非已将数据拔出表,而是存储在内存内里守候列队。当mysql有空余时,再拔出。另外一个主要的优点是,来自很多客户真个拔出被会合在一同,并被编写进一个块。这比实行很多自力的拔出要快良多。害处是,不克不及前往主动递增的ID,和体系溃散时,MySQL还没有来得及拔出数据的话,这些数据将会丧失。
强迫毗连按次STRAIGHT_JOIN
SELECTTABLE1.FIELD1,TABLE2.FIELD2FROMTABLE1STRAIGHT_JOINTABLE2WHERE…
由下面的SQL语句可知,经由过程STRAIGHT_JOIN强制MySQL按TABLE1、TABLE2的按次毗连表。假如你以为按本人的按次比MySQL保举的按次举行毗连的效力高的话,就能够经由过程STRAIGHT_JOIN来断定毗连按次。
强迫利用一时表SQL_BUFFER_RESULT
SELECTSQL_BUFFER_RESULT*FROMTABLE1WHERE…
当我们查询的了局会合的数据对照多时,能够经由过程SQL_BUFFER_RESULT.选项强迫将了局集放光临时表中,如许就能够很快地开释MySQL的表锁(如许别的的SQL语句就能够对这些纪录举行查询了),而且能够长工夫地为客户端供应年夜纪录集。
分组利用一时表SQL_BIG_RESULT和SQL_SMALL_RESULT
SELECTSQL_BUFFER_RESULTFIELD1,COUNT(*)FROMTABLE1GROUPBYFIELD1;
一样平常用于分组或DISTINCT关头字,这个选项关照MySQL,假如有需要,就将查询了局放光临时表中,乃至在一时表中举行排序。SQL_SMALL_RESULT比起SQL_BIG_RESULT差未几,很少利用。
任何规模的组织都可能受益于外包服务,并在一个标准化和优化的平台上统一其数据库管理任务。基于其本身的特性,DBaaS提供了敏捷和高效的数据库服务,它可以支持多变的需求。
admin 该用户已被删除
沙发
发表于 2015-1-18 18:38:48 | 只看该作者
但换公司用MSSQL2K感觉自己好像根本就不了解MSSQL。什么DTS触发器以前根本没用过。
海妖 该用户已被删除
板凳
发表于 2015-1-25 22:08:46 | 只看该作者
对一张百万级别的表建游标,同时又没有什么过滤条件,取得游标效率是如果直接SQL查询百万条数据;如果再对每条记录做处理,耗时将更长。
变相怪杰 该用户已被删除
地板
发表于 2015-2-4 08:49:12 | 只看该作者
从项目平台的选择上讲,我们关心的,应该是一款产品能不能满足任务需求,而不是网上怎么说。
5#
发表于 2015-2-9 20:42:51 | 只看该作者
where子句的作用是在对查询结果进行分组前,将不符合where条件的行去掉,即在分组之前过滤数据,条件中不能包含聚组函数,使用where条件显示特定的行。
分手快乐 该用户已被删除
6#
发表于 2015-2-27 21:33:40 | 只看该作者
是要和操作系统进行Socket通讯的场景。否则建议慎重!
透明 该用户已被删除
7#
发表于 2015-3-9 14:39:16 | 只看该作者
我是新手,正在学习数据库和操作系统,深感理论的泛广,唯有一步一步来,但是又感觉时间不够,收集了很多资料却总是没能认真的看完,希望有一个讨论板块,大家共同解决,共同分享,共同努力
简单生活 该用户已被删除
8#
发表于 2015-3-17 00:07:57 | 只看该作者
同样会为索引视图等应用带来麻烦。看看行级和事务级的快照数据放在tempdb中,就能感觉到目前架构的尴尬。
柔情似水 该用户已被删除
9#
发表于 2015-3-23 08:32:12 | 只看该作者
而写到本地,我又考虑到效率问题.大家来讨论讨论吧,分数不打紧,就给10分,十全十美,没啥对错,各抒己见,但是要有说服力的哦~
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-23 02:11

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表