首页 > 数据库 > MySQL > 正文

MySQL中SQL优化 索引优化 锁机制 主从复制的方式

2024-07-24 12:33:41
字体:
来源:转载
供稿:网友
  myisam存储:如果表对事务要求不高,同时是以查询和添加为主的,我们考虑使用myisam存储引擎,比如bbs 中的发帖表,回复表
 
  需要定时进行碎片整理(因为删除的数据还是存在):optimize table table_name;
  MySQL中SQL优化、索引优化、锁机制、主从复制的方法
  InnoDB存储:对事务要求高,保存的数据都是重要数据,我们建议使用INN0DB,比如订单表,账号表.
 
  1 SQL性能分析
  SQL性能下降原因:
 
  1、查询语句写的烂
  2、索引失效(数据变更)
  3、关联查询太多join(设计缺陷或不得已的需求)
  4、服务器调优及各个参数设置(缓冲、线程数等)
  通常SQL调优过程:
 
  观察,至少跑1天,看看生产的慢SQL情况。
  开启慢查询日志,设置阙值,比如超过5秒钟的就是慢SQL,并将它抓取出来。
  explain + 慢SQL分析。
  show profile。
  运维经理 or DBA,进行SQL数据库服务器的参数调优。
  总结:
 
  1、慢查询的开启并捕获
  2、explain + 慢SQL分析
  3、show profile查询SQL在Mysql服务器里面的执行细节和生命周期情况
  4、SQL数据库服务器的参数调优
  2 常见通用的JOIN查询
  SQL执行加载顺序
  手写顺序:
 
  SELECT DISTINCT
      <select_list>FROM
      <left_table> <join_type>JOIN <right_table> on <join_codition> //join_codition:比如员工的部门ID和部门表的主键id相同WHERE
      <where_condition>GROUP BY
      <group_by_list>HAVING
      <having_condition>ORDER BY
      <order_by_condition>LIMIT
      <limit_number>
  MySQL机读顺序:
 
  1 FROM <left_table>
  2 ON <join_condition>
  3 <join_type> JOIN <right_table>
  4 WHERE <where_condition>
  5 GROUP BY <group_by_list>
  6 HAVING <having_condition>
  7 SELECT
  8 DISTINCT <select_list>
  9 ORDER BY <order_by_condition>
  10 LIMIT <limit_number>

(编辑:武林网)

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表