欢迎来到天天文库
浏览记录
ID:32179092
大小:123.00 KB
页数:3页
时间:2019-02-01
《黑马程序员:java面试题之数据库优化方面的经验》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、目前部分开发人员面对一个很尴尬的境地:技术到了,但是语言表达能力没到!很多东西在实践操作中能够手到擒来,但是面试过程中却处处卡壳!很严重~用PreparedStatement一般来说比Statement性能高:一个sql发给服务器去执行,涉及步骤:语法检查、语义分析,编译,缓存 1.“inertintouservalues(1,1,1)”---二进制2.3.“inertintouservalues(2,2,2)”---二进制4.5.“inertintouservalues(?,?,?)”---二进制 有外键约束会影响插入和删除性能,如果程序能够保证数据的完整性,
2、那在设计数据库时就去掉外键。(比喻:就好比免检产品,就是为了提高效率,充分相信产品的制造商) (对于hibernate来说,就应该有一个变化:empleyee->Deptment对象,现在设计时就成了employeeàdeptid) 看mysql帮助文档子查询章节的最后部分,例如,根据扫描的原理,下面的子查询语句要比第二条关联查询的效率高: 1.selecte.name,e.salarywheree.managerid=(selectidfromemployeewherename='itcast'); 2.selecte.name,e.salary,m.n
3、ame,m.salaryfromemployeese,employeesmwhere e.managerid=m.idandm.name='itcast'; 表中允许适当冗余,譬如,主题帖的回复数量和最后回复时间等 将姓名和密码单独从用户表中独立出来。这可以是非常好的一对一的案例哟! sql语句全部大写,特别是列名和表名都大写。特别是sql命令的缓存功能,更加需要统一大小写,sql语句à发给oracle服务器à语法检查和编译成为内部指令à缓存和执行指令。根据缓存的特点,不要拼凑条件,而是用?和PreparedStatment 还有索引对查询性能的改进也是
4、值得关注的。 备注:下面是关于性能的讨论举例 4航班3个城市1. m*n2.3. select*fromflight,citywhereflight.startcityid=city.cityidandcity.name='beijing';1.2. m+n3.4. select*fromflightwherestartcityid=(selectcityidfromcitywherecityname='beijing');5.6. selectflight.id,'beijing',flight.flightTimefromflightwher
5、estartcityid=(selectcityidfromcitywherecityname='beijing')
此文档下载收益归作者所有