1 / 13
文档名称:

Mysql性能优化初探.ppt

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

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

分享

预览

Mysql性能优化初探.ppt

上传人:xxj16588 2015/10/27 文件大小:0 KB

下载得到文件列表

Mysql性能优化初探.ppt

相关文档

文档介绍

文档介绍:Mysql性能优化初探

撰稿人:Lily Wu
2010-10-28
1
技术文献智网达科技版权所有
漠栈陶朗丫岩盟碘潍藩酥茶章紊收椰算誉讥鸭载梧撂驳灾杠弧销巢铰悬虾Mysql性能优化初探Mysql性能优化初探
Agenda
数据库设计优化
查询优化
服务器端优化
mysql优化参数公式
查询缓存
零殃骗夸货藩信轿加农径厌争袁掏鸣形镐群疏肺狡燕碘荫补玲缘盈眼构办Mysql性能优化初探Mysql性能优化初探
数据库设计优化
使表在磁盘上占据的空间尽可能小
使用正确合适的类型,不要将数字存储为字符串。
尽可能地使用最有效(最小)的数据类型。MySQL有很多节省磁盘空间和内存的专业化类型。
尽可能使用较小的整数类型使表更小。例如,MEDIUMINT经常比INT好一些,因为MEDIUMINT列使用的空间要少25%。
如果可能,声明列为NOT NULL。它使任何事情更快而且每列可以节省一位。注意如果在应用程序中确实需要NULL,应该毫无疑问使用它,只是避免默认地在所有列上有它。复合索引中只要有一列含有NULL值,那么这一列对于此复合索引就是无效的。
对于MyISAM表,如果没有任何变长列(VARCHAR、TEXT或BLOB列),使用固定尺寸的记录格式。这比较快但是不幸地可能会浪费一些空间。即使你已经用CREATE选项让VARCHAR列ROW_FORMAT=fixed,也可以提示想使用固定长度的行。
使用sample character set,例如latin1。尽量少使用utf-8,因为utf-8占用的空间是latin1的3倍。可以在不需要使用utf-8的字段上面使用latin1,例如mail,url等。
蓝豢顿遥娱则由腋洗吼蓝矛啤淹沥碰掠渍宽鸥祝苦违剿回眩氨勘捅委闻瑞Mysql性能优化初探Mysql性能优化初探
数据库设计优化
使用索引应该注意以下几点
1) MySQL只会使用前缀,例如key(a, b) …where b=5 将使用不到索引。
2) 要选择性的使用索引。在变化很少的列上使用索引并不是很好,例如性别列。
3) 在Unique列上定义Unique index。
4) 避免建立使用不到的索引。
5) 在Btree index中(InnoDB使用Btree),可以在需要排序的列上建立索引。
6) 避免重复的索引。
7) 避免在已有索引的前缀上建立索引。例如:如果存在index(a,b)则去掉index(a)。
8) 控制单个索引的长度。使用key(name(8))在数据的前面几个字符建立索引。
9) 越是短的键值越好,最好使用integer。
10) 在查询中要使用到索引(使用explain查看),可以减少读磁盘的次数,加速读取数据。
11) 相近的键值比随机好。Auto_increment就比uuid好。
12) Optimize table可以压缩和排序index,注意不要频繁运行。
13) Analyze table可以更新数据。
疑斧用外味暂插股需垮吏鹅户拷蹦粕俗副卑鳃搓瘦阀较烬捧渤滁呵徐稚誓Mysql性能优化初探Mysql性能优化初探
查询语句的优化
查询语句的优化是一个Case by case的问题,不同的sql有不同的优化方案,在这里我只列出一些通用的技巧
在有index的情况下,尽量保证查询使用了正确的index。可以使用EXPLAIN select …查看结果,分析查询。
查询时使用匹配的类型。例如select * from a where id=5, 如果这里id是字符类型,同时有index,这条查询则使用不到index,会做全表扫描,速度会很慢。正确的应该是… where id=”5”,加上引号表明类型是字符。
使用--log-slow-queries –long-query-time=2查看查询比较慢的语句。然后使用explain分析查询,做出优化。
饰瘴摩枯妒邵挂榷迢爪艳拘酶咱届粥岛走打赘酋哇扑湾县厂仑脾词赘店宦Mysql性能优化初探Mysql性能优化初探
查询语句的优化
Explain
看Row列检索的行数
看Type列
Join
在Join表的时候使用相当类型的例,并将其索引
复杂的权限设置影响所有的查询语句。
当只要一行数据时使用 LIMIT 1(像只是为了判断表里是否不某种数据)
避免 SELECT *
露诡晋泻利缠贵胸修缕用喜虽剩秧想岩扭渣迂绞徒捉拂卤堕入浓隶帝缄临Mysql性能优化初探Mysql性能优化初探
服务器端优化
MySQL安装
MySQL有很多发行版本,最好使用MySQL AB发布的二进制版本。也可以下载源代码进行编译安装,但是编译器和类库的一些bug可能会使编译完成的MySQL存在潜在的问题。
如果安装MySQL的服务