运维必会之MySQL篇 (6)

查看:

运维必会之MySQL篇


 
往student表中插入内容:

mysql> INSERT INTO studentvalues(0001,'宏志','男',30,'计算机网络'); mysql> INSERT INTO studentvalues(0002,'王硕 ','男',30,'computer application'); mysql>  INSERT INTO student values(0003,'nfsnobody','男',28,'物流管理'); mysql> INSERT INTO studentvalues(0004,'脉动','男',29,'computer application'); mysql> INSERT INTO studentvalues(0005,'oldgirl','女',26,'计算机科学与技术'); mysql>  INSERT INTO student values(0006,'莹莹','女',22,'护士');

查看:

运维必会之MySQL篇


往course表中插入内容:

mysql> INSERT INTO coursevalues(1001,'Linux中高级运维',3); mysql> INSERT INTO coursevalues(1002,'Linux高级架构师',5); mysql> INSERT INTO coursevalues(1003,'MySQL高级Dba',4); mysql> INSERT INTO course values(1004,'Python运维开发',4); mysql> INSERT INTO coursevalues(1005,'Java web开发',3);

查看:

运维必会之MySQL篇


往SC表中插入数据:

mysql> INSERT INTOSC(Sno,Cno,Grade)  values(0001,1001,4); mysql> INSERT INTOSC(Sno,Cno,Grade) values(0001,1002,3); mysql> INSERT INTOSC(Sno,Cno,Grade)  values(0001,1003,1); mysql> INSERT INTOSC(Sno,Cno,Grade)  values(0001,1004,6); mysql> INSERT INTOSC(Sno,Cno,Grade)  values(0002,1001,3); mysql> INSERT INTOSC(Sno,Cno,Grade)  values(0002,1002,2); mysql> INSERT INTO SC(Sno,Cno,Grade)  values(0002,1003,2); mysql> INSERT INTO SC(Sno,Cno,Grade)  values(0002,1004,8); mysql> INSERT INTO SC(Sno,Cno,Grade)  values(0003,1001,4); mysql> INSERT INTO SC(Sno,Cno,Grade)  values(0003,1002,4); mysql> INSERT INTO SC(Sno,Cno,Grade)  values(0003,1003,2); mysql>  INSERT INTO SC(Sno,Cno,Grade)  values(0003,1004,8); mysql> INSERT INTO SC(Sno,Cno,Grade)  values(0004,1001,1); mysql> INSERT INTO SC(Sno,Cno,Grade)  values(0004,1002,1); mysql> INSERT INTO SC(Sno,Cno,Grade)  values(0004,1003,2); mysql>  INSERT INTO SC(Sno,Cno,Grade)  values(0004,1004,3); mysql> INSERT INTO SC(Sno,Cno,Grade)  values(0005,1001,5); mysql> INSERT INTO SC(Sno,Cno,Grade)  values(0005,1002,3); mysql> INSERT INTO SC(Sno,Cno,Grade)  values(0005,1003,2); mysql> INSERT INTO SC(Sno,Cno,Grade)  values(0005,1004,9);

查看:

运维必会之MySQL篇


连表查询:

mysql> selectstudent.Sno,student.Sname,course.Cname,SC.Grade from student,course,SC wherestudent.Sno=SC.Sno and course.Cno=SC.Cno;

运维必会之MySQL篇


第三章 MySQL优化

SQL语句优化

1、硬件层面优化
         1.1数据库物理机采购:
         1.2服务器硬件配置调整

                   1.2.1服务器BIOS调整:
                   1.2.2阵列卡调整:

2、软件层优化
         2.1操作系统层面优化

                   2.1.1操作系统及MySQL实例选择
                   2.1.2文件系统层优化
                   2.1.3linux内核参数优化

         2.2mysql数据库层面优化
         2.2.1my.cnf参数优化
         2.2.2关于库表的设计规范
         2.2.3SQL语句的优化
3、网站集群架构上的优化
4、流程,制度,安全优化
 

使用explain优化SQL语句

1、抓慢查询SQL语句方法:
   a、救火:紧急且重要:show full processlist;(登录数据库现场抓,连续执行2次,超过2秒)

mysql –uroot –pnfsnobody –S /data/3306/mysql.sock–e “show full processlist;”|egrep –vi “sleep”

   b、未雨绸缪:重要不紧急,记录意思分析慢查询日志。

配置参数记录慢查询语句:       long_query_time = 2                    ### 超过2秒,记录到Slow Log里。       log_queries_not_using_indexes           ### 没有走索引的语句,记录到Slow Log里。       log-slow-queries = /data/3306/slow.log     ### Slow Log 文件。       min_examined_row_limit                ### 记录结果集大于指定值的SQL语句,5.6-5.7都可以使用

 c、慢查询日志切割:
 脚本:

#!/bin/bash cd /data/3306/ &&\ /bin/mv slow.log slow.log.$(date +%F) &&\ mysqladmin -uroot -pnfsnobody123 -S /data/3306/mysql.sock flush-log

定时任务:

#cut mysql slow log 00 00 * * * /bin/sh /server/scripts/cut_slow_log.sh >/dev/null2>&1

2、explain语句检查索引执行情况:

mysql> explain select * from studentwhere Sname='nfsnobody'\G

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zgzyzj.html