1 / 28
文档名称:

mysql性能优化.ppt

格式:ppt   大小:549KB   页数:28页
下载后只包含 1 个 PPT 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

mysql性能优化.ppt

上传人:350678539 2022/1/20 文件大小:549 KB

下载得到文件列表

mysql性能优化.ppt

文档介绍

文档介绍:MySQL优化方式
MySQL技巧分享
MySQL函数
目录索引
第一页,共28页。
MySQL优化方式
第二页,共28页。
系统优化:硬件、架构
服务优化
应用优化
MySQL优化方式
第三页,共28页。
容易更改的数据
选择合适的表引擎,有时候 MyISAM 适合,有时候 InnoDB适合
为保证查询性能,最好每个表都建立有 auto_increment 字段, 建立合适的数据库索引
最好给每个字段都设定 default 值
第十页,共28页。
应用优化
索引建立原则(一)
一般针对数据分散的关键字进行建立索引,比如ID、QQ, 像性别、状态值等等建立索引没有意义
字段唯一,最少,不可为null
对大数据量表建立聚集索引,避免更新操作带来的碎片。
尽量使用短索引,一般对int、char/varchar、date/time 等 类型的字段建立索引
需要的时候建立联合索引,但是要注意查询SQL语句的编写
谨慎建立 unique 类型的索引(唯一索引)
大文本字段不建立为索引,如果要对大文本字段进行检索,
可以考虑全文索引
频繁更新的列不适合建立索引
一般建议每条记录最好有一个能快速定位的独一无二定位的 唯一标示(索引)
不要过度索引,单表建立的索引不要超过5个,否则更新索 引将很耗时
第十一页,共28页。
应用优化
索引建立原则(二)
1. order by 字句中的字段,where 子句中字段,最常用的sql
语句中字段,应建立索引。
,系统将默认为改字段建立索引。
,但对于在线实时
系统建议控制在5个以内。
,同时也可以提高带where字句
的update,Delete SQL性能。
类型字段不要单独建立为索引,但覆盖索引可以包
含这些字段。
,表内的行才按照特地的顺序存储,按照
需要可以是asc或desc方式。

可能会有更好的性能。
第十二页,共28页。
应用优化
MYSQL 执行顺序
(8) SELECT (9) DISTINCT (11) <TOP_specification> <select_list>
(1) FROM <left_table>
(3) <join_type> JOIN <right_table>
(2) ON <join_condition>
(4) WHERE <where_condition>
(5) GROUP BY <group_by_list>
(6) WITH {CUBE | ROLLUP}
(7) HAVING <having_condition>
(10) ORDER BY <order_by_list>
第十三页,共28页。
应用优化
编写高效的 SQL(一)
能够快速缩小结果集的 WHERE 条件写在前面,如果有恒量条件, 也尽量放在前面
尽量避免使用 GROUP BY、DISTINCT 、OR、IN 等语句的使用, 避免使用联表查询和子查询,因为将使执行效率大大下降
能够使用索引的字段尽量进行有效的合理排列,如果使用了 联合索引,请注意提取字段的前后顺序
针对索引字段使用 >, >=, =, <, <=, IF NULL和BETWEEN 将会使用 索引, 如果对某个索引字段进行 LIKE 查询,使用 LIKE ‘%abc%’ 不能使用索引,使用 LIKE ‘abc%’ 将能够使用索引
如果在SQL里使用了MySQL部分自带函数,索引将失效,同时将无法 使用 MySQL 的 Query Cache,比如 LEFT(), SUBSTR(), TO_DAYS() DATE_FORMAT(), 等,如果使用了 OR 或 IN,索引也将失效
使用 Explain 语句来帮助改进我们的SQL语句
第十四页,共28页。
应用优化
编写高效的 SQL(二)
子句中的“=”左边进行算术或表达式运算,否则系统将
可能无法正确使用索引
select id from uinfo_jifen where jifen/60 > 10000; 优化后: Select id from uin