10.8日常学习笔记

发布于:2022-11-29 ⋅ 阅读:(115) ⋅ 点赞:(0)

MySQL优化

1、范式

第一范式:遵循原子性

原子性:原子性即操作不可再分。

第二范式:唯一性

数据库中的数据要有唯一性。所有列对于主键的约束,必须是完整依赖不能出现部分依赖。

第三范式:减少冗余

冗余:重复的数据 , 减少冗余 尽量的不要出现重复的数据,并不能完全消除冗余。

2、慢SQL

定位慢查询

1>查看慢查询相关参数

show variables like 'slow_query%';

show variables like 'long_query_time';

2>设置慢查询参数

方法一:全局变量设置(临时性的设置,mysql服务器重启会失效)

将 slow_query_log 全局变量设置为“ON”状态

set global slow_query_log='ON';

set global slow_query_log_file='/var/lib/mysql/linux-base-slow.log';

set global long_query_time=1;

方法二:配置文件设置

修改配置文件my.cnf,在[mysqld]下的下方加入

[mysqld]

slow_query_log = ON

slow_query_log_file = /var/lib/mysql/linux-base-slow.log

long_query_time = 1

3>重启MySQL服务

service mysqld restart

可通过这个示例语句模拟:SELECT SLEEP(15)

 3、grep sed awk三剑客

sed:  命令的作用是利用脚本来处理文本文件。

 sed [-hnV][-e<script>][-f<script文件>][文本文件]

参数说明:

-e<script>或--expression=<script> 以选项中指定的 script 来处理输入的文本文件,这个-e可以省略,直接写表达式。

-f<script文件>或--file=<script文件>以选项中指定的 script 文件来处理输入的文本文件。

-h或--help显示帮助。

-n 或 --quiet 或 --silent 仅显示 script 处理后的结果。

-V 或 --version 显示版本信息。

动作说明:

a:新增, a 的后面可以接字串,而这些字串会在新的一行出现(目前的下一行)~

c:取代, c 的后面可以接字串,这些字串可以取代 n1,n2 之间的行!

d:删除,因为是删除啊,所以 d 后面通常不接任何内容;

i:插入, i 的后面可以接字串,而这些字串会在新的一行出现(目前的上一行);

p:打印,亦即将某个选择的数据印出。通常 p 会与参数 sed -n 一起运行;

s:取代,通常这个 s 的动作可以搭配正规表示法,例如 1,20s/old/new/g

本文含有隐藏内容,请 开通VIP 后查看