A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© wangyuit 中级黑马   /  2016-10-9 11:55  /  1049 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

用PreparedStatement 一般来说比Statement性能高:一个sql 发给服务器去执行,涉及步骤:语法检查、语义分析,编译,缓存
 


01.“inert into user values(1,1,1)”---二进制

02.

03.“inert into user values(2,2,2)”---二进制

04.

05.“inert into user values(?,?,?)”---二进制
复制代码
  有外键约束会影响插入和删除性能,如果程序能够保证数据的完整性,那在设计数据库时就去掉外键。(比喻:就好比免检产品,就是为了提高效率,充分相信产品的制造商)

  (对于hibernate来说,就应该有一个变化:empleyee->Deptment对象,现在设计时就成了employeeàdeptid)

  看mysql帮助文档子查询章节的最后部分,例如,根据扫描的原理,下面的子查询语句要比第二条关联查询的效率高:

  1. select e.name,e.salary where e.managerid=(select id from employee where name='itcast');

  2. select e.name,e.salary,m.name,m.salary from employees e,employees m where

  e.managerid = m.id and m.name='itcast';

  表中允许适当冗余,譬如,主题帖的回复数量和最后回复时间等

  将姓名和密码单独从用户表中独立出来。这可以是非常好的一对一的案例哟!

  sql语句全部大写,特别是列名和表名都大写。特别是sql命令的缓存功能,更加需要统一大小写,sql语句à发给oracle服务器à语法检查和编译成为内部指令à缓存和执行指令。根据缓存的特点,不要拼凑条件,而是用?和PreparedStatment

  还有索引对查询性能的改进也是值得关注的。

  备注:下面是关于性能的讨论举例

  4航班 3个城市



01.      m*n

02.

03.  select * from flight,city where flight.startcityid=city.cityid and city.name='beijing';

04.

05.  m + n

06.

07.  select * from flight where startcityid = (select cityid from city where cityname='beijing');

08.

09.  select flight.id,'beijing',flight.flightTime from flight where startcityid = (select cityid from city where cityname='beijing')
复制代码

3 个回复

倒序浏览
真的不错
回复 使用道具 举报
路过帮顶一下,看你打字挺辛苦的
回复 使用道具 举报
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马