|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
导致了一个使用几乎和mSQL一样的API接口的用于他们的数据库的新的SQL接口的产生,这样,这个API被设计成允许为用于mSQL而写的第三方代码更容易移植到MySQL。</p>进步SQL实行效力的几点倡议:
◆只管不要在where中包括子查询;
关于工夫的查询,只管不要写成:whereto_char(dif_date,yyyy-mm-dd)=to_char(2007-07-01,yyyy-mm-dd);
◆在过滤前提中,能够过滤失落最年夜数目纪录的前提必需放在where子句的开端;
FROM子句中写在最初的表(基本表,drivingtable)将被开始处置,在FROM子句中包括多个表的情形下,你必需选择纪录条数起码的表作为基本表。假如有三个以上的毗连查询,那就必要选择交织表(intersectiontable)作为基本表,交织表是指谁人被其他表所援用的表;
◆接纳绑定变量
◆在WHERE中只管不要利用OR
◆用EXISTS替换IN、用NOTEXISTS替换NOTIN;
◆制止在索引列上利用盘算:WHERESAL*12>25000;
◆用IN来替换OR:WHERELOC_ID=10ORLOC_ID=15ORLOC_ID=20
◆制止在索引列上利用ISNULL和ISNOTNULL;
◆老是利用索引的第一个列;
◆用UNION-ALL替换UNION;
◆制止改动索引列的范例:SELECT...FROMEMPWHEREEMPNO=123,因为隐式数据范例转换,to_char(EMPNO)=123,因而,将不接纳索引,一样平常在接纳字符串拼集静态SQL语句呈现;
◆!=将不利用索引;
◆优化GROUPBY;
◆制止带有LIKE参数的通配符,LIKE4YE%利用索引,但LIKE%YE不利用索引
◆制止利用坚苦的正轨表达式,比方select*fromcustomerwherezipcodelike"98___",即使在zipcode上创建了索引,在这类情形下也仍是接纳按次扫描的体例。假如把语句改成select*fromcustomerwherezipcode>"98000",在实行查询时就会使用索引来查询,明显会年夜年夜进步速率;
◆只管明白的完成SQL语句,只管少让数据库事情。好比写SELECT语句时,必要把查询的字段明白指出表名。只管不要利用SELECT*语句。构造SQL语句的时分,只管依照数据库的习气举行构造。
支持大型的数据库。可以处理拥有上千万条记录的大型数据库。 |
|