如何创建效率高sql-建立索引】的更多相关文章

  我们做开发的人员,虽说自己不是专业从事数据库方面研究的(如DBA),但很多时候,公司没有专门的DBA,所以拿到具体的项目中,整体的数据库设计都是开发人员自己写的,随着时间的推移,加上开发经验的增长,越来越关心如何设计好的数据库,如何写出高效的sql语句.之所以非常关心数据库及sql语句的写法,主要是在程序逻辑代码上大家都有可能写出一样的效率的功能方法来,而sql语句呢,对于同样的结果集,一个初级的开发人员与一个资深的开发人员或者DBA写出的sql语句执行效率有着很大的差距.这里对数据库设计略…
select cutomer_id,title,content from product_comment where audit_status=1 and product_id=1 and product_id=199726 limit 0,5 select count(DISTINCT audit_status)/COUNT(*) AS audit_rate COUNT(DISTINCT product_id)/COUNT(*) AS product_rate FROM product_com…
b-tree索引 一定程度上说,mysql只有b-tree索引.他没有bitmap索引.还有一个叫hash索引的,只在Memory存储引擎中才有. b-tree索引跟oracle中的大同小异. mysql中关于b-tree的限制: 只有做全值拼配或者根据左前缀匹配.我猜测是因为mysql没有基于cost的优化器,它没有对index full scan的操作.因为无法衡量这种full scan是否划得来.所以只能对前缀进行匹配,没有后缀或者中间匹配这种逻辑. 多列索引 如果是多列索引,顺序很重要,…
索引可以提高数据的检索效率,也可以降低数据库的IO成本,并且索引还可以降低数据库的排序成本.排序分组操作主要消耗的就是CPU资源和内存,所以能够在排序分组操作中好好的利用索引将会极大地降低CPU资源的消耗. 如何判定是否需要创建索引? 1.较频繁地作为查询条件的字段 这个都知道.什么是教频繁呢?分析你执行的所有SQL语句.最好将他们一个个都列出来.然后分析,发现其中有些字段在大部分的SQL语句查询时候都会用到,那么就果断为他建立索引. 2.唯一性太差的字段不适合建立索引 什么是唯一性太差的字段.…
数据库索引: 索引有单列索引,复合索引之说,如果某表的某个字段有主键约束和唯一性约束,则Oracle 则会自动在相应的约束列上建议唯一索引.数据库索引主要进行提高访问速度. 建设原则: 1.索引应该经常建在where 子句经常用到的列上.如果某个大表经常使用某个字段进行查询,并且检索行数小于总表行数的5%.则应该考虑. 2.对于两表连接的字段,应该建立索引.如果经常在某表的一个字段进行order By 则也经过进行索引. 3.不应该在小表上建设索引. 优缺点: 1.索引主要进行提高数据的查询速度…
from:http://blog.csdn.net/tjvictor/article/details/4370771 SQL Server中的XML索引分为两类:主XML 索引和辅助XML索引.其中辅助XML索引又分为:PATH 辅助XML索引,VALUE 辅助XML索引,PROPERTY辅助XML索引. 创建XML索引的语法示例如下: create table XMLTable(Id int primary key, XMLCol xml); go --XML主索引 create primar…
避免对经常更新的表进行过多的索引,并且索引中的列尽可能少.而对经常用于查询的字段(外键)应该创建索引,但要避免添加不必要的字段. 数据量小的表最好不要使用索引,由于数据较少,查询花费的时间可能比遍历索引的时间还要短,索引可能不会产生优化效果. 在条件表达式中经常用到的.不同值较多(主键的列)的列上建立索引,在不同值少的列上不要建立索引.比如在学生表的“性别”字段上只有“男”与“女”两个不同值,因此就无须建立索引.如果建立索引,不但不会提高查询效率,反而会严重降低更新速度. 在频繁进行排序或分组(…
存储过程经过预编译处理 而SQL查询没有 SQL语句需要先被数据库引擎处理成低级的指令 然后才执行 ------------------------------------------------------- 如果是只执行一次的话,存储过程不一定比SQL语句效率高.因为存储过程有个预先编译的过程.就是.启动服务器后或者第一次执行后(可以设置).就可以把存储过程加载到高速缓存中,这样以后调用起来就不用再通过编译 执行效率当然就高喽..另外执行存储过程只需要传递几个参数..用语句的话可能需要一大串…
对于存储过程为什么比sql效率高的原因有4点 第一就是使用存储过程允许组建式编成, 二是可以对程序进行编译,…
在第十级中我们看到了索引的内部结构,在第十一级中我们看到了平衡树结构潜在的负面影响:索引碎片.有了索引内部结构的知识,我们可以检查在执行数据定义语句和数据操作语句的时候,都发生了什么.在本级中我们介绍数据定义语言的三个动词:create,alter和drop.在下一级中,我们介绍数据操作语言的三个动词:insert,update,delete. 创建,修改,删除索引都是索引维护的范围.create,alter,drop作为维护索引的动词,只是因为SQL Server团队认为队友对象的维护应该使用…