我看了简朝阳的一本《mysql性能优化》中提到重复执行相同的SQL会造成资源浪费?
我对此很不能理解?上次执行的sql返回的结果集不是会在mysql server的缓存里面么,
这样执行相同的查询不是很快就得到结果了么?(不需要query优化器去选择执行计划,直接从缓存中读取)
怎么会造成资源浪费呢?
请谈谈你们的理解?谢谢
我对此很不能理解?上次执行的sql返回的结果集不是会在mysql server的缓存里面么,
这样执行相同的查询不是很快就得到结果了么?(不需要query优化器去选择执行计划,直接从缓存中读取)
怎么会造成资源浪费呢?
请谈谈你们的理解?谢谢
1、Cache 系统的不合理利用导致Cache 命中率低下造成数据库访问量的增加,同时也浪费了Cache系统的硬件资源投入;
2、过度依赖面向对象思想,对系统
3、对可扩展性的过渡追求,促使系统设计的时候将对象拆得过于离散,造成系统中大量的复杂Join语句,而MySQL Server 在各数据库系统中的主要优势在于处理简单逻辑的查询,这与其锁定的机制也有较大关系;
4、对数据库的过渡依赖,将大量更适合存放于文件系统中的数据存入了数据库中,造成数据库资源的浪费,影响到系统的整体性能,如各种日志信息;
5、过度理想化系统的用户体验,使大量非核心业务消耗过多的资源,如大量不需要实时更新的数据做了实时统计计算。
贴不出来,只能给个链接了。。
http://blog.csdn.net/MONKEY_D_MENG/archive/2010/07/30/5777572.aspx
第五点中提到重复query问题
根据这个的意思,它所指的 “相同的SQL ” ,应该是 select * from table1 where gid=100;select * from table1 where gid=101;select * from table1 where gid=102;....它给出的建议是 select * from table1 inner join table2 ...一次性把结果集拿到。至少说效率上的好坏,要看具体情况。