Mysql优化

博客围绕数据库展开,介绍了数据库三大范式,包括对属性原子性、记录唯一性和字段冗余性的约束;阐述分库分表的垂直拆分和水平切分方式;还讲解定位慢查询的方法、将慢查询定位到日志的操作,以及索引分类、原理和SQL优化策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、数据库三大范式

第一范式:1NF是对属性的原子性约束,要求属性(列)具有原子性,不可再分解;(只要是关系型数据库都满足1NF)

第二范式:2NF是对记录的惟一性约束,表中的记录是唯一的, 就满足2NF, 通常设计一个主键来实现,主键不能包含业务逻辑。

第三范式:3NF是对字段冗余性的约束,它要求字段没有冗余。 没有冗余的数据库设计。

2、分库分表

垂直拆分:把表按模块划分到不同数据库表中;

水平切分:把一个表按照某种规则把数据划分到不同表或数据库里。(取摸算法

3、如何从一个大项目中,迅速的定位执行速度慢的语句?(定位慢查询)

show status 查看MySQL服务器状态信息;

show variable 查看慢查询时间;

explain 查看sql执行过程

 

4、如何将慢查询位到日志中?

在默认情况下,mysql不会记录慢查询,需要在启动mysql时候,指定记录慢查询:bin\mysqld.exe --safe-mode  --slow-query-log [mysql5.5 可以在my.ini指定](安全模式启动,数据库将操作写入日志,以备恢复)

bin\mysqld.exe –log-slow-queries=d:/abc.log [低版本mysql5.0可以在my.ini指定]。先关闭mysql,再启动, 如果启用了慢查询日志,默认把这个文件放在my.ini 文件中记录的位置#Path to the database root datadir=" C:/ProgramData/MySQL/MySQL Server 5.5/Data/"

5、索引的分类及原理?

主键索引:主键是一种唯一性索引,但它必须指定为“PRIMARY KEY”。

唯一索引:索引列的所有值都只能出现一次,即必须唯一

全文索引(查询索引):

组合索引

索引的实现通常使用 B 树及 B+ 树

 

6、SQL优化

  • 计数据库时:数据库表、字段的设计,存储引擎
  • 利用好MySQL自身提供的功能,如索引等
  • 横向扩展:MySQL集群、负载均衡、读写分离
  • SQL语句的优化(避免全表扫描)及使用缓存技术
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值