我是靠谱客的博主 干净翅膀,最近开发中收集的这篇文章主要介绍mysql优化,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

1.所有表都使用innodb引擎

2.所有表都要设计自增主键

3.性别,是否等枚举类型使用ENUM/TINYTINT,而非char/varchar

4. 所有字段都显示的定义:NOT NULL

5.字符串字段尽可能不分配过长的长度,如usernam,设计为varchar(30)而不是varchr(255),char(30)

6.杜绝使用TEXT/BLOB数据类型

7. 常用的排序(ORDER BY),分组(GROUP BY),取唯一(DISTINCT)字段加上索引

8.字符串列需要索引时,创建前缀索引。如INDEX(name(10), address(20))

9.索引数量不要太多

10.多使用联合索引,少使用单独索引



无法使用索引情况:

1.通过索引扫描的记录数超过30%,变成全表扫描

2. 联合索引中,第一个索引列使用范围查询(WHERE key_part1 > ? AND key_part2 > ?)

3. 联合索引中,第一个查询条件不是最左索引列

4.模糊查询条件列最左以通配符%开始

5.内存表(HEAP)使用HASP索引时,使用范围索引或者ORDER BY

6.两个独立索引,其中一个用于检索,一个用于排序

7. 表关联字段类型不一样(也包括长度不一样)

8. 索引字段条件上使用函数


现阶段使用的数据库版本为mysql官方版本(不支持线程池)

mysql分支版本percona,支持线程池,能有效应对突然大量访问数据库。比如:凌晨12点的一些活动。建议今后创建数据库是选择percona版本,Ucloud支持

最后

以上就是干净翅膀为你收集整理的mysql优化的全部内容,希望文章能够帮你解决mysql优化所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(49)

评论列表共有 0 条评论

立即
投稿
返回
顶部