Mysql性能优化初探.ppt
《Mysql性能优化初探.ppt》由会员分享,可在线阅读,更多相关《Mysql性能优化初探.ppt(13页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、Mysql性能优化初探V1.0撰稿人:Lily Wu2010-10-281技术文献智网达科技版权所有Agendan数据库设计优化n查询优化n服务器端优化nmysql优化参数公式n查询缓存数据库设计优化n使表在磁盘上占据的空间尽可能小使表在磁盘上占据的空间尽可能小使用正确合适的类型,不要将数字存储为字符串。尽可能地使用最有效(最小)的数据类型。MySQL有很多节省磁盘空间和内存的专业化类型。尽可能使用较小的整数类型使表更小。例如,MEDIUMINT经常比INT好一些,因为MEDIUMINT列使用的空间要少25%。如果可能,声明列为NOTNULL。它使任何事情更快而且每列可以节省一位。注意如果在应
2、用程序中确实需要NULL,应该毫无疑问使用它,只是避免默认地在所有列上有它。复合索引中只要有一列含有NULL值,那么这一列对于此复合索引就是无效的。对于MyISAM表,如果没有任何变长列(VARCHAR、TEXT或BLOB列),使用固定尺寸的记录格式。这比较快但是不幸地可能会浪费一些空间。即使你已经用CREATE选项让VARCHAR列ROW_FORMAT=fixed,也可以提示想使用固定长度的行。使用samplecharacterset,例如latin1。尽量少使用utf-8,因为utf-8占用的空间是latin1的3倍。可以在不需要使用utf-8的字段上面使用latin1,例如mail,ur
3、l等。数据库设计优化n使用索引应该注意使用索引应该注意 以下几点以下几点1)MySQL只会使用前缀,例如key(a,b)whereb=5将使用不到索引。2)要选择性的使用索引。在变化很少的列上使用索引并不是很好,例如性别列。3)在Unique列上定义Uniqueindex。4)避免建立使用不到的索引。5)在Btreeindex中(InnoDB使用Btree),可以在需要排序的列上建立索引。6)避免重复的索引。7)避免在已有索引的前缀上建立索引。例如:如果存在index(a,b)则去掉index(a)。8)控制单个索引的长度。使用key(name(8)在数据的前面几个字符建立索引。9)越是短的键
4、值越好,最好使用integer。10)在查询中要使用到索引(使用explain查看),可以减少读磁盘的次数,加速读取数据。11)相近的键值比随机好。Auto_increment就比uuid好。12)Optimizetable可以压缩和排序index,注意不要频繁运行。13)Analyzetable可以更新数据。查询语句的优化n查询语句的优化是一个Casebycase的问题,不同的sql有不同的优化方案,在这里我只列出一些通用的技巧在有index的情况下,尽量保证查询使用了正确的index。可以使用EXPLAINselect查看结果,分析查询。查询时使用匹配的类型。例如select*fromaw
5、hereid=5,如果这里id是字符类型,同时有index,这条查询则使用不到index,会做全表扫描,速度会很慢。正确的应该是whereid=”5”,加上引号表明类型是字符。使用-log-slow-querieslong-query-time=2查看查询比较慢的语句。然后使用explain分析查询,做出优化。查询语句的优化nExplain看Row列检索的行数看Type列nJoin在Join表的时候使用相当类型的例,并将其索引n复杂的权限设置影响所有的查询语句。n当只要一行数据时使用LIMIT1(像只是为了判断表里是否不某种数据)n避免SELECT*服务器端优化nMySQL安装MySQL有很多
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Mysql 性能 优化 初探
限制150内