论坛首页 招聘求职论坛

面试遇到问你sql优化问题

浏览 26406 次
精华帖 (0) :: 良好帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2008-07-17  
程序员能了解一些sql优化的原则就OK了,网上soso
如果真正要优化时,还是要用工具进行实际的测试。
0 请登录后投票
   发表时间:2008-07-17  
好好努力。去看java 写的开源数据据 hsql你会明白很多的
0 请登录后投票
   发表时间:2008-07-18  
我还试过给问了sql92标准是什么呢
哈哈~~
0 请登录后投票
   发表时间:2008-07-18  
如果你sql不行,说明你做的项目比较少。没碰到复杂的项目。
0 请登录后投票
   发表时间:2008-07-18  
一个SQL语句,在他面上有很多东西的,以前调整的时候专门学过,不过现在好久没有和数据库打交道了。

例如 A,B两个表,A表是主表,10万数据.B表是辅助表,B有300数据,那么
(a,b分别属于A,B)
Select a, b from A,B where A.id = b.id and b.id > z
Select A.a, b.b from A,B where A.id = b.id and b.id > z

上面这个语句包含的意思很多,例如 from A,B 具体我忘记了,假设我说的是对的(不对的话from B, A就对了).
1,第一句selecr a, b明显不好,他回去遍历A,B两个表的查看a,b
2,From A,B 按照sql先搜索小表,效率更高,不过忘记是小表在前还是达标在前,记得是靠右原则,那么from B,A就更好.
3, where sql在执行where 语句的时候记得也是靠右原则,会先执行 A.id = b.id ,数据的搜索都大很多,如果b.id > z,先执行那么效率就高很多.

其他还有什么select not in ()
Group By
Have这些每一个语法都有它的效率考虑,忘记了,

所以sql语句优化真的有必要,

还有就是索引,那个太长,一般dba做的

0 请登录后投票
   发表时间:2008-07-19  
关键是有没有这方面的概念,很多人从来都不考虑这个问题的
0 请登录后投票
   发表时间:2008-07-20  
我个人认为做JAVA的,少不了使用数据库的,有部份公司是有DBA,那另一部份没有DBA的,就是你对数据库的维护之类的,所以有时间花点时间看看,数据库的优化是WEB开发的一个很重要环节

个人认为优化:
1、从物理上优化(水平分区,垂直分区);
2、硬件上能配置好点的就更好了;
3、查询语句的优化不要使用*,应写字段,返回的记录数应控制,对查询的字段建索引,没必要关系太多的表就不要关联;
4、对于使用函数的选择应慎重考虑


应该还有很多,具体的就靠自己去测试了
0 请登录后投票
   发表时间:2008-07-20  
程序员不知道sql优化,给人的感觉就好像是拷贝人员。
系统的优化,当然包括sql的优化,才是一个技术人员的基本功,可以知道一个技术人员到底水平如何!!!
在我看来sql的优化在于:
   1,索引的利用
   2,分区的利用
   3,查询的分离。有时一条sql语句不见得比多条sql语句来的高效
   4,表结构的设计。
根据不同的业务情况还有很多。。。。
0 请登录后投票
   发表时间:2008-07-20  
realreal2000 写道
一个SQL语句,在他面上有很多东西的,以前调整的时候专门学过,不过现在好久没有和数据库打交道了。

例如 A,B两个表,A表是主表,10万数据.B表是辅助表,B有300数据,那么
(a,b分别属于A,B)
Select a, b from A,B where A.id = b.id and b.id > z
Select A.a, b.b from A,B where A.id = b.id and b.id > z

上面这个语句包含的意思很多,例如 from A,B 具体我忘记了,假设我说的是对的(不对的话from B, A就对了).
1,第一句selecr a, b明显不好,他回去遍历A,B两个表的查看a,b
2,From A,B 按照sql先搜索小表,效率更高,不过忘记是小表在前还是达标在前,记得是靠右原则,那么from B,A就更好.
3, where sql在执行where 语句的时候记得也是靠右原则,会先执行 A.id = b.id ,数据的搜索都大很多,如果b.id > z,先执行那么效率就高很多.

其他还有什么select not in ()
Group By
Have这些每一个语法都有它的效率考虑,忘记了,

所以sql语句优化真的有必要,

还有就是索引,那个太长,一般dba做的


怎么记得是大表靠左?

还有些无非是索引, in和exists的替换,冗余和范式的平衡。。。。。
0 请登录后投票
   发表时间:2008-07-21  
目前我只把数据库当表用,但是总是感觉用起来不是那么的顺手,抽点时间还是学习下吧。。(只是为了了解、用得更顺手)
0 请登录后投票
论坛首页 招聘求职版

跳转论坛:
Global site tag (gtag.js) - Google Analytics