logo资料库

mysql优化技术.ppt

第1页 / 共32页
第2页 / 共32页
第3页 / 共32页
第4页 / 共32页
第5页 / 共32页
第6页 / 共32页
第7页 / 共32页
第8页 / 共32页
资料共32页,剩余部分请下载后查看
—高级软件人才实作培训专家! 为大型网站提速 --mysql优化 讲师:韩顺平 email:hanshunping@tsinghua.org.cn qq: 2403931377
—高级软件人才实作培训专家! 数据库优化工作 主讲:韩顺平 对于一个以数据为中心的应用,数据库的好坏直接影响到程序 的性能,因此数据库性能至关重要。一般来说,要保证数据库 的效率,要做好以下四个方面的工作: ① 数据库设计 ② sql语句优化 ③ 数据库参数配置 ④ 恰当的硬件资源和操作系统 这个顺序也表现了这四个工作对性能影响的大小
—高级软件人才实作培训专家! 数据库表设计 主讲:韩顺平 通俗地理解三个范式,对于数据库设计大有好处。在数据库设计中, 为了更好地应用三个范式,就必须通俗地理解三个范式(通俗地理解 是够用的理解,并不是最科学最准确的理解): 第一范式:1NF是对属性的原子性约束,要求属性具有原子性,不可 再分解;(只要是关系型数据库都满足1NF) 第二范式:2NF是对记录的惟一性约束,要求记录有惟一标识,即实 体的惟一性; 第三范式:3NF是对字段冗余性的约束,即任何字段不能由其他字段 派生出来,它要求字段没有冗余。 没有冗余的数据库设计可以做到。 但是,没有冗余的数据库未必是最好的数据库,有时为了提高运行 效率,就必须降低范式标准,适当保留冗余数据。具体做法是: 在 概念数据模型设计时遵守第三范式,降低范式标准的工作放到物理 数据模型设计时考虑。降低范式就是增加字段,允许冗余。
—高级软件人才实作培训专家! 数据库设计 主讲:韩顺平 举例说明什么事适度冗余,或者说有理由的冗余!
—高级软件人才实作培训专家! 数据库设计 主讲:韩顺平 l 给学生说一个相册浏览次数的设计案例
—高级软件人才实作培训专家! SQL语句优化 主讲:韩顺平 n SQL优化的一般步骤 ① 通过show status命令了解各种SQL的执行频率。 ② 定位执行效率较低的SQL语句-(重点select) ③ 通过explain分析低效率的SQL语句的执行情况 ④ 确定问题并采取相应的优化措施
—高级软件人才实作培训专家! 主讲:韩顺平 SQL语句优化-show参数 l MySQL客户端连接成功后,通过使用show [session|global] status 命令可以提供服务器状态信息。其中的session来表示当前的连接 的统计结果,global来表示自数据库上次启动至今的统计结果。默 认是session级别的。 下面的例子: show status like ‘Com_%’; 其中Com_XXX表示XXX语句所执行的次数。 重点注意:Com_select,Com_insert,Com_update,Com_delete通 过这几个参数,可以容易地了解到当前数据库的应用是以插入更 新为主还是以查询操作为主,以及各类的SQL大致的执行比例是 多少。 l 还有几个常用的参数便于用户了解数据库的基本情况。 Connections:试图连接MySQL服务器的次数 Uptime:服务器工作的时间(单位秒) Slow_queries:慢查询的次数 (默认是10)
—高级软件人才实作培训专家! SQL语句优化-定位慢查询 l 在默认情况下mysql不记录慢查询日志,需要在启动的时候指定 主讲:韩顺平 bin\mysqld.exe - -slow-query-log l 通过慢查询日志定位执行效率较低的SQL语句。慢查询日志记录 了所有执行时间超过long_query_time所设置的SQL语句。 show variables like ‘long_query_time’; set long_query_time=2; l 测试语句 select * from emp e,dept d where e.empno=123451 and e.deptno=d.deptno; 查看慢查询日志:默认为数据目录data中的host-name-slow.log。 低版本的mysql需要通过在开启mysql时使用- -log-slow- queries[=file_name]来配置
分享到:
收藏