mysql 优化

尽量不在数据库做运算
建议单库不超过300-400个表
单表字段数上限控制在20~50个
将字符转化为数字
优先使用ENUM或SET
避免使用NULL字段(NULL列加索引,需要额外空间;含NULL复合索引无效)
少用并拆分TEXT/BLOB(TEXT类型处理性能远低亍VARCHAR,强制生成硬盘临时表,若必须使用则拆分到单独的表)
不在数据库里存图片
谨慎合理添加索引(减慢更新,索引不是赹多越好)
能不加的索引尽量不加(最好不超过字段数20%)
尽量不用外键
拒绝大SQL,拆解成多条简单SQL
保持事务(连接)短小
线上OLTP系统(线下库另论): 尽可能少用存储过程  尽可能少用触发器  减用使用MySQL函数对结果进行处理;
尽量不用SELECT * ,叧取需要数据列
同一字段,将or改写为in() (控制个数);不同字段,将or改为union
避免负向查询 NOT、!=、<>、!<、!>、NOT EXISTS、NOT IN、 NOT LIKE等
避免 % 前缀模糊查询
COUNT(*)的资源开销大,尽量丌用少用
LIMIT高效分页:和where 结合Select * from table WHERE id >= ( select id from table limit 10000,1 ) limit 10;
若无需对结果进行去重,则用UNION ALL , UNION有去重开销
高并发DB不建议进行两个表以上的JOIN
EXPLAIN 你的 SELECT 查询
当只要一行数据时使用 LIMIT 1
为搜索字段建索引
在Join表的时候使用相当类型的列,并将其索引
千万不要 ORDER BY RAND()
从 PROCEDURE ANALYSE() 取得建议
把IP地址存成 UNSIGNED INT
固定长度的表会更快:表中没有如下类型的字段: VARCHAR,TEXT,BLOB。
拆分大的 DELETE 或 INSERT 语句

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一、MySQL优化 MySQL优化从哪些方面入手: (1)存储层(数据) 构建良好的数据结构。可以大大的提升我们S...
    宠辱不惊丶岁月静好阅读 2,476评论 1 8
  • 概述 MySQL优化分为三部分优化: MySQL服务器和配置优化 数据库设计和结构优化 查询优化(重点) MySQ...
    卫斯理的青葱岁月阅读 374评论 0 14
  • 数据库优化的目的 避免出现页面访问错误由于数据库连接timeout产生页面5xx错误由于慢查询造成页面无法加载由于...
    Hey_Shaw阅读 1,084评论 0 1
  • 系统层面(基本不用动,看了下,买的云服务器基本都已经优化过了) 内核相关参数(/etc/sysctl.conf) ...
    神奇大叶子阅读 2,052评论 0 4
  • [图片上传失败...(image-5ecabb-1541744995168)] 内容整理于网络 一、EXPLAIN...
    hugoren阅读 529评论 0 1