mysql数据库(mysql存800万条记录合适)

本文详细探讨了MySQL数据库的优化策略,包括SQL语句的执行顺序、索引的创建与管理、数据库优化方案及事务处理。强调了索引在提升查询效率上的重要作用,介绍了不同类型的索引及其优缺点,还涵盖了数据库的存储引擎和事务隔离级别。内容适用于面试准备及实际开发中的性能优化。
摘要由CSDN通过智能技术生成

目录

#数据库分类

#数据库字段约束 面试:

#面试问一个表里多少个字段合适:

#SQL语句分类

#sql语句函数关键字

#SQL Select 语句完整的执行顺序: (必会)

#数据库增删改查语句

#数据库多表联查 --见桌面

#数据库中的优化(面试必问)

##SQL优化(面试必问):替  返索件  多查  //##数据库优化的方案

#数据库中 慢SQL

##判别系统中遇到了SQL慢查询问题:

##SQL慢查询的解决

#数据库三范式(必会)--面试

#数据库 四种存储引擎 (高薪常问) 面试问了

#数据库 锁

##什么是数据库锁?

##基本锁类型:

##读锁和写锁

#数据库执行计划

#索引

##什么是索引?

##可以使用多少列创建索引?

##索引sql语句写法

###查看表格定义的所有索引

 ###创建-单值/普通索引 --面试

###创建-唯一索引

 ###创建-复合索引

###删除索引

###检查SQL的执行是否高效/效率/是否用了索引/查看索引的扫描次数/解释说明SQL的执行计划/性能(Explain Select)--面试问的多次

##面试:全表扫描一定比索引慢吗

##索引的类型--面试

##索引的优缺点  面试

##建立索引的原则/什么情况下应该建立索引

##索引失效

##什么情况下不宜建立索引

##索引的底层实现原理(高薪常问)--面试

###不同的索引结构

#视图

##什么是视图 面试

##优缺点 面试

##视图sql语句写法

###创建视图

###使用视图

#事务

##什么是事务 面试

##事务4个特性/条件--面试

##事务隔离级别(面试必问,要会读英文)--Spring中的隔离级别--面试

##什么是事务传播?

##Redis事务

###Redis 事务相关的命令?

###Redis是否可以保证事务的原子性


#数据库分类

分类(主要观察数据之间的关系): 关系型数据库MySQL 
                                                           非关系型数据库Redis

#数据库字段约束 面试:

  非默主唯外检
非空约束:如果为一个列/字段添加了非空约束,那么这个列里写的/insert into值就不能为空,但可以重复
默认约束:给字段设置默认值而不是默认的null,使用default
主键约束:如果为一个列/字段添加了主键约束,那么这个列就是主键  
唯一约束:如果为一个列/字段添加了唯一约束,那么这个列里写的/insert into值就即不能重复,但可以为空。
外键约束:使用明确的一段代码,表示两个表之间的关系   一个表可以有多个外键
检查约束:可以用什么来确保表格里的字段只接受特定要求的值
 

#面试问一个表里多少个字段合适:

小点的十几个,大点的二三十个

#SQL语句分类

    分类:(面试问什么是DML,和DDL有什么区别?)
    1.DML数据操作语言
    2.DDL数据库定义语言
    3.DCL数据库控制语言
    4.DQL数据库查询语言

#sql语句函数关键字

基础函数_注释_条件查询_聚合函数_分组_单表查询_男人应该冷静,沸腾的水只会蒸发的博客-CSDN博客

1.分页
MySQL的分页关键词limit  
SELECT * FROM student3 LIMIT 2,6; 查询学生表中数据,从第三条开始显示,显示6条   
2.分组  
MySQL的分组关键字:group by    
SELECT sex, count(*) FROM student3 GROUP BY sex;

3. 去重   
去重关键字:distinct 
select DISTINCT NAME FROM student3;

##聚合函数(必会)

1.聚合函数
SQL中提供的聚合函数可以用来统计、求和、求最值等等。
2.分类
COUNT:统计行数量
SUM:获取单个列的合计值
AVG:计算某个列的平均值
MAX:计算列的最大值
MIN:计算列的最小值

##sql分组怎么实现--面试

##分页查询关键字

#SQL Select 语句完整的执行顺序: (必会)

FROM            从哪个数据表检索数据
WHERE          过滤表中数据的条件
GROUP BY     如何将上面过滤出的数据分组算结果
使用聚合函数进行计算
 HAVING           
ORDER BY 对结果集进行排序
limit... 分页,展示几条数据

#数据库增删改查语句

二阶段数据库_男人应该冷静,沸腾的水只会蒸发的博客-CSDN博客

#数据库多表联查 --见桌面

https://download.csdn.net/download/fhefhffg/85017667

笛卡尔积

1.用逗号隔开多张表
2.表关系where
3.业务条件and

连接查询

1.用join隔开多张表
2.表关系on
3.业务条件where

#数据库中的优化(面试必问)

##SQL优化(面试必问):替  返索件  多查 插  //##数据库优化的方案

一、插入数据时:1.使用varchar代char  2.用具体字段代替*   2.使用默认值代null  3.尽量使用数值替代字符串类型 
                4.批量处理:批量入,批量删除,最好使用分页
二、查询时
+单表查询:1.用具体字段名称代替*/(查询SQL尽量不要使用select *)
           2.查询尽量避免回大量数据:
           3. where后面的条里:1)尽量用and不用or  2)尽量用=不用!= 、<> , 条件越精确越好 ,
                                3)避免在where中对字段进行表达式操作    4)优化like语句-最好确定最前面开始查询
           4.引:1)索引不宜太多,一般5个以内  2)索引不适合建在有大量重复数据的字段上                
                   3)给经常用的字段加索引,每个表的name字段都要加索引,因为经常要用
                   4)复合索引要遵循最左特性不然就失效了 
                   5)索引表及时删掉多余的索引
                   6)使用explain分析你SQL执行计划 +查看慢查询日志,找出执行时间长的SQL进行优化
           5、尽量避免使用order by       
+
1.不要有超过5个以上的表连接
2.inner join 、left join、right join,优先使用inner join

#数据库中 慢SQL

##判别系统中遇到了SQL慢查询问题:

2,IO负载高导致服务器卡住。这个一般和全表查询没索引有关系。

##SQL慢查询的解决 面试   索引 日志 负载

1、查询语句和索引都正常但是还是慢。如果表面上索引正常,但是查询慢,需要看看索引是否生效。

2、 打开慢日志查询,确定是否有SQL语句占用了过多资源,如果是,在不改变业务原意的前提下,对insert、group by、order by、join等  可以对SQL语句进行优化。

2. 考虑调整MySQL的系统参数//: innodb_buffer_pool_size、innodb_log_file_size、table_cache等。

3、 确定是否是因为高并发引起行锁的超时问题。查询语句中有很多计算逻辑,导致数据库cpu负载。如果数据量过大,需要考虑进一步的分库分表,或者利用分页查询减少返回的数据量

#数据库三范式(必会)--面试

原唯值

范式:数据库的专业术语,用来设计表要遵循的原则,范式NF
第一范式:1NF 原子性,列或者字段不能再分
第二范式:2NF 唯一性,一张表只说一件事                                               
第三范式:3NF 直接性,数据不能存在传递关系,即每个属性都跟主键有直接关系,而不是间接关系。

范式化设计:优缺点: 优点: 可以尽量得减少数据冗余,使得更新快,体积小 缺点:对于查询需要多个表进行关联,减少写得效率增加读得效率,更难进行索引 优化 

反范式化: 优点:可以减少表得关联,可以更好得进行索引优化 

缺点:数据冗余以及数据异常,数据得修改需要更多的成本

#数据库 四种存储引擎 (高薪常问) 面试

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值