|
1、我们可以通过哪些方式来定位执行效率较低的SQL语句呢?请结合您的经验分享下您的心得。
方法多多,都是跟谷哥学的:
① 开启mysql的慢查询,设置如下两个参数:
log-slow-queries = E:/DB/mysql/MySQL-5.1.50/TB_DEV.log
long_query_time = **
log-slow-queries表示日志册存储位置,long_query_time表示执行时间单位是秒,
这样设置后重启MySQL服务器,查询超过**秒的sql语句将会记录到日志中
② 就是常用的看执行计划了,这个关系型数据库基本都能做到
2. 索引可以帮助用户解决大多数的SQL性能问题,它是在MySQL的存储引擎层中实现的。
这些存储引擎各有特点,实际应用中我们应该怎样来选择?
我觉得,根据引擎的特点结合实际的环境来选择引擎,
进一步来说,要发挥引擎的最佳性能就要看他需要什么,例如:InnoDB来说,索引是极其重要的。
一般来说引擎的不同会导致数据库性能、事务、并发控制、参照完整性、缓存、 故障恢复,备份及回存各有特点
关于Mysql引擎,兄弟们看看《High Performance MySQL》,关于细节的介绍的比较深入。
3. 对于最常见的三种引擎MyISAM、InnoDB、Memory,它们支持的索引类型有哪些?
划分索引的类型要从两个角度来说,《MySQL 5权威指南》中对这个介绍了一种划分方法。
另一种应该是从计算机技术角度来说吧,这里不做进一步说明
4. 在什么情况下使用中间表可以提高查询速度?请结合实际应用场景说说使用中间表的好处。
是将关联,统计之类的结果存放在了中间表中,后面的查询直接取结果。
用途不光如此,还有数据复制等... |
|