mysql知识-javaGuide
1.基本概念

ER图

nf范式

2nf是为了消除部分依赖

3nf是为了消除传递依赖

为什么不建议使用外键

什么是存储过程

三种删除

2.NOSQL概念
mysql有明确的结构化,定义了表,列这些属性要求。nosql的一个库中可以储存各类的数据

优势:
横线扩展:是增加多个节点。 纵向扩展:扩展单个节点的资源

3.字符集介绍

字节编码;一种字符和二进制编码规则

SHOW CHARSET(查看mysql支持的字符集)



4.面试题目
- mysql优点
开源免费,文档丰富,支持分库分表,事务支持优秀 - 字段类型


- 为什么不用blog


5.

mysql的基本架构


引擎;
优势:使用了事务性




缓存在mysql8.0已经被禁用







并发解决

隔离性

Mysql锁表级锁和行级锁介绍

显式锁定:通过 LOCK TABLES 语句显式锁定整个表

会进行全表扫描,根据配置进行不同枷锁原则,大部分会造成行锁。
会导致开销增大。


-
当前读和快照读的区别,理解快照的概念
一个提交的事务就会生成一个快照作为一个版本使用


-
自增锁


-
分析sql的性能



-
Mysql性能优化

数据库规范:
1.命名规范
2.设计规范
统一引擎,统一字符集,统一注释,大小合理,禁止预留字段,可以实现反范式。因为关联查询会降低效率
3.字段设计规范
合理数据类型(ip,无符号),TEXT和blog的处理方式。,尽量设置为not null。不用字符串储存日期,精确小数的储存用decmial。
索引规范
1.索引数目不超过5个
2.禁止用全文索引,禁止给每一列都索引
3.必须有主键每一个表

4.开发规范
尽量不在数据库内做运算, 2.优化大sql语句提高性能
3.充分利用已经存在的索引





数据库操作规范:


浙公网安备 33010602011771号