Mysql基础10-SQL优化浅谈

在人生的道路上,不管是潇洒走一回,或者是千山独行,皆须是自己想走的路,虽然,有的人并不是很快就能找到自己的方向和道路,不过,只要坚持到底,我相信,就一定可以找到自己的路,只要找到路,就不必怕路途遥远了。

导读:本篇文章讲解 Mysql基础10-SQL优化浅谈,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com,来源:原文

11. SQL优化

11.1 参考
11.2 8种方式
  • 选取最适用的字段属性
  • 使用连接(JOIN)来代替子查询(Sub-Queries)
  • 使用联合(UNION)来代替手动创建的临时表
  • 事务:事务的另一个重要作用是当多个用户同时使用相同的数据源时,它可以利用锁定数据库的方法来为用户提供一种安全的访问方式,这样可以保证用户的操作不被其它的用户所干扰。
  • 锁定表
  • 使用外键
  • 使用索引
  • 优化的查询语句

11.3性能优化

11.3.1 表的设计合理化,符合三大范式(3NF)
  • 1NF是对属性的原子性约束,要求属性(列)具有原子性,不可再分解;(只要是关系型数据库都满足1NF)
  • 2NF是对记录的惟一性约束,要求记录有惟一标识,即实体的惟一性;
  • 3NF是对字段冗余性的约束,它要求字段没有冗余。 没有冗余的数据库设计可以做到。
11.3.2 添加适当索引(index) [四种: 普通索引、主键索引、唯一索引unique、全文索引]
  • 较频繁的作为查询条件字段应该创建索引;
  • 唯一性太差的字段不适合单独创建索引,即使频繁作为查询条件;
  • 更新非常频繁的字段不适合创建索引
  • 不会出现在WHERE子句中的字段不该创建索引
11.3.3 SQL语句优化
  • 通过show status命令了解各种SQL的执行频率;
  • 定位执行效率较低的SQL语句-(重点select;
  • 通过explain分析低效率的SQL;
  • 确定问题并采取相应的优化措施。
11.3.4 其他
  • 分表技术(水平分割、垂直分割);
  • 读写[写: update/delete/add]分离;
  • 存储过程 [模块化编程,可以提高速度];
  • 对mysql配置优化 [配置最大并发数my.ini, 调整缓存大小 ];
  • mysql服务器硬件升级;
  • 定时的去清除不需要的数据,定时进行碎片整理(MyISAM)。

MVCC机制见本专栏下一篇

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/123959.html

(0)
飞熊的头像飞熊bm

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!