一个 sql 发给服务器去执行, 涉及步骤:语法检查、 语义分析, 编译, 缓存 “inert into user values(1,1,1)”-二进制 “inert into user values(2,2,2)”-二进制 “inert into user values(?,?,?)”-二进制
有外键约束会影响插入和删除性能, 如果程序能够保证数据的完整性, 那在设计数据库时就 去掉外键。( 比喻: 就好比免检产品, 就是为了提高效率, 充分相信产品的制造商) ( 对于 hibernate 来说, 就应该有一个变化: empleyee->Deptment 对象, 现在设计时就成了 employeedeptid) 看 mysql 帮助文档子查询章节的最后部分, 例如, 根据扫描的原理, 下面的子查询语句要比 第二条关联查询的效率高: 1. select e.name,e.salary where e.managerid=(select id from employee where name='zxx'); 2. select e.name,e.salary,m.name,m.salary from employees e,employees m where e.managerid = m.id and m.name='zxx'; 表中允许适当冗余, 譬如, 主题帖的回复数量和最后回复时间等 将姓名和密码单独从用户表中独立出来。 这可以是非常好的一对一的案例哟!
备注: 下面是关于性能的讨论举例 4 航班 3 个城市 m*n select * from flight,city where flight.startcityid=city.cityid and city.name='beijing'; m + n select * from flight where startcityid = (select cityid from city where cityname='beijing'); select flight.id,'beijing',flight.flightTime from flight where startcityid = (select cityid from city where cityname='beijing')