Video-No.03 韩顺平_MySQL优化

1、MySQL数据库优化技术

1)表的设计合理化(符合3NF)

2)添加适当的索引(index):普通索引、主键索引、唯一索引、全文索引、复合索引

3)分表技术(水平分割、垂直分割)

4)读写分离(读:select,写:insert、update、delete)

5)存储过程、触发器(模块化编程,提前编译sql语句,提交执行速度)

6)对mysql配置文件进行优化(最大并发数、缓存大小)

7)mysql服务器升级

8)定时清理不需要的数据,定时进行碎片整理(MyISAM)

2、3NF(范式)

1)1NF:列具有原子性,不可分割,数据库是关系型数据库就符合1NF

2)2NF:表的行记录是唯一的,符合2NF,设置主键

3)3NF:表中没有冗余数据

3、反3NF:没有冗余的数据库未必是最好的数据库,有时为了提高运行效率,就必须降低范式标准,适当保留冗余数据。具体做法是: 在概念数据模型设计时遵守第三范式,降低范式标准的工作放到物理数据模型设计时考虑。降低范式就是增加字段,允许冗余。

4、Sql语句优化

1)定位慢查询

a、获取mysql的一些运行状态(如:当前连接数、select次数、update次数、insert次数、delete次数等)

show [global|session] status like ‘‘ 查询相关运行状态

netstat –anb 查询端口

SHOW STATUS; #显示参数信息列表
SHOW STATUS LIKE ‘%quer%‘; #模糊匹配

SHOW STATUS LIKE ‘uptime‘; #显示MySQL运行时间
SHOW GLOBAL STATUS LIKE ‘com_select‘; #显示select次数
SHOW GLOBAL STATUS LIKE ‘com_update‘; #显示update次数
SHOW GLOBAL STATUS LIKE ‘com_insert‘; #显示insert次数
SHOW GLOBAL STATUS LIKE ‘com_delete‘; #显示delete次数
SHOW STATUS LIKE ‘connections‘; #显示当前并发连接数
SHOW GLOBAL STATUS LIKE ‘slow_queries‘; #查询慢查询次数

b、开启慢查询日志:

SHOW VARIABLES LIKE ‘long_query_time‘; #慢查询记录最短时间
SET long_query_time = 1; #设置慢查询时间

SET GLOBAL slow_query_log = ON; #开启慢查询日志
SHOW VARIABLES LIKE ‘slow_query_log‘; #显示慢查询日志状态
SHOW VARIABLES LIKE ‘slow_query_log_file‘; #显示慢查询日志文件路径

日志记录:

# Time: 151007 12:01:37
# [email protected]: root[root] @ localhost [127.0.0.1]  Id:     5
# Query_time: 15.434343  Lock_time: 0.000000 Rows_sent: 0  Rows_examined: 13000000
use hsp_mysql;
SET timestamp=1444190497;
select * from emp where empno = 12321312312
 LIMIT 0, 1000;
时间: 2024-09-30 09:59:29

Video-No.03 韩顺平_MySQL优化的相关文章

韩顺平_PHP程序员玩转算法公开课(第一季)01_算法重要性_五子棋算法_汉诺塔_回溯算法_学习笔记_源代码图解_PPT文档整理

文西马龙:http://blog.csdn.net/wenximalong/ 课程说明:算法是程序的灵魂,为什么有些网站能够在高并发,和海量吞吐情况下依然坚如磐石,大家可能会说: 网站使用了服务器集群技术.数据库读写分离和缓存技术(比如memcahced和redis等),那如果我再深入的问一句,这些优化技术又是怎样被那些天才的技术高手设计出来的呢? 我在上大学的时候就在想,究竟是什么让不同的人写出的代码从功能看是一样的,但从运行效率上却有天壤之别, 就拿以前在软件公司工作的实际经历来说吧, 我是

IT讲师韩顺平:我为什么辞去百万年薪,自己创业?

先自我介绍一下,我叫韩顺平,是一名IT讲师.国内很多自学PHP和Java的朋友都看过我的视频课程,算是有些知名度. 15年8月从传智辞职后,很多朋友非常关心我的去向,网上也流传各种说法,有的说我和某某培训机构合作了,共同创业:也有的说韩顺平去国外旅游去了:当然更多的人说我选择了创业,这里特别感谢大家对我的关注,尤其是我的韩粉们,总是通过各种途径来关注我,总是尝试着给我帮助,这让我非常的感动.目前,我手中的工作可以告个段落,有时间来写点文字,说说我的近况和我以后的计划. 由于当讲师出身,习惯性的喜

IT讲师韩顺平:创业不易,尚硅谷延续教育初心

一.我是谁,为什么从事IT培训,并且一干就是10多年 ? 我叫韩顺平,是一名IT讲师.从事IT培训有10多年了,国内很多自学Java和PHP的朋友都看过我的视频课程,算是有些知名度. 我03年从清华毕业,毕业后加入王志东的点击科技,在王志东的带领下参与开发了协同软件和lava即时通讯软件的开发,离开点击科技后,我又去了新浪.顺便兼职做培训,在培训的过程中,我发现我特别擅长讲课,总是有办法把复杂的东西讲的通俗易懂,从学员的眼光里我看到了他们对我的认可,这让我心里很满足,心里想既然我有这方面的天赋,

韩顺平循序渐进学java 第04讲 流程控制

4.1 Java基本语法-三大流程控制 4.1.1 顺序控制 4.1.2 分支控制 ① 单分支 If(条件表达式) { 语句; } ② 双分支 If(条件表达式) { 语句; }else { 语句; } ③ 多分支 v  方法1: If(条件表达式) { 语句; }else if(条件表达式) { 语句; }else { 语句; } v  方法2: switch(条件表达式) { case 常量1: 语句1; break; case 常量2: 语句2; break; ... case 常量n:

韩顺平视频学习笔记-简易qq

1 package myclient; 2 3 import java.net.*; 4 import java.util.Date; 5 import java.text.SimpleDateFormat; 6 import java.awt.event.ActionEvent; 7 import java.awt.event.ActionListener; 8 import java.io.*; 9 import java.awt.*; 10 11 import javax.swing.*;

韩顺平老师讲课问题

优点一大堆,不说了. 问题:1.不做对比,对比有好处:强调差异,印象更深刻.--于是我只好到处看比较分析2.不做总结.一直按顺序讲,内容是有了,但因为不总结,对知识点记忆不够深刻. 还有哪位在听韩老师讲课的,一同交流啊!QQ群368255977 韩顺平老师讲课问题,布布扣,bubuko.com

分层模式开发+MVC模式开发--韩顺平雇员数据库管理

1.分层模式 在使用分层设计模式编写代码之前,我们更多的是采用面向过程然后眉毛胡子一把抓,在一两个程序代码里写完所有的功能,这样只适合于小型个人项目.因为不利于阅读和修改,只有编程的个人比较熟悉程序的结构.这不利于程序的扩展性和协同开发.所以,我们引入一个固定的模式来进行编程,使得所有代码结构清晰明确,而且易于扩展延伸. 此处介绍的一种模式是分层模式.把程序分成几个层次:界面层.业务逻辑层.数据层. 界面层:主要功能就是实现界面的显示.比如要在登陆页面显示输入框之类,就需要login.php中放

韩顺平dedecms讲解上课记录

感谢韩顺平: 如何打开php的gd库,通过php设置->php扩展-->phpdb库;打上勾就行: dede存在四张十分重要的表,channeltype,模型表最原始的发源arctype:每条记录是一个栏目是发源表2 archives:内容主表是:是发源表3属于一个文章或者电影的主要内容信息 addonarticle:这是附加表,就是每篇文章,或者电影都有自己特色信息在这里填写 模型的具体体现就是主表和附加表,主表是不能动的,所以在内容模型中增加一个字段实际上是在附加表中增加一个字段,这里是调

http请求详解,防盗链技术_韩顺平PHP视频听课笔记

韩顺平PHP视频听课笔记 第84讲 http请求详解,防盗链技术 1,  通过httpwatch插件来抓取http请求内容 2,  http1.0短连接, http1.1长连接 http1.0短连接:每次通信时间很短,效率极低,已被废除. http1.1长连接:通话时间长.只要现在基本都采用http1.1. 只要Connection的状态为keep-alive,就说明是通话状态 3,  http是tcp/ip协议的一个应用层协议,http也是我们web开发的基础. 4,  一个问题:看一个tes