MYSQL面试整理

SQL优化
1、使用合适的存储引擎
a)当做大小查询操作时,使用mylsam 因为这个引擎对修改很不友好,只做一个update都把这整个字段锁住,
而之后的进程就算时读的操作也要等update结束后执行当做写的操作时使用innodb引擎,支持行锁,
对写的操作执行非常快并且支持很多高级操作,如事务
2、当只查询一条数据时,使用limit 1 这样就不会在查询出结果后继续向下查询有没有符合条件的结果了
3、使用not exitxs 代替 not in not in不能使用索引

索引的分类
1、普通索引
2、复合索引
3、主键索引
4、全文索引

索引的工作原理
1、数据库索引,是数据库管理系统中一个排序的数据结构,以协助快熟查询、更新数据库张数据。索引的实现通常使用b树或者b+树
2、主要是在所有叶子种节点种增加了指向下一个叶子几点的指针,因此innodb建议为大部分表使用默认的主键走位主索引

表设置索引缺点
1、增加数据库的存储空间
2、插入修改花费的时间过长
表设置索引优点
1、通过创建索引,可以保证数据库表中每一行数据的唯一性
2、大大加快数据的检索数据
3、加速表和表的连接
4、加速表分组和排序的时间

什么情况下设置了所有但是无法应用
1、%开头的like语句、模糊匹配
2、OR语句前后没有同时使用索引
3、数据类型出现引式转换

索引建立原则
1、经常用作过滤的字段上建立索引
2、避免在经常存取的字段上建立索引
3、不同值较少的字段上避免建立索引
4、避免大数据类型建立索引
5、在sql中需要经常进行分组、排序的字段加上索引
6、对于小型的表,建立索引可能会影响性能

什么是事务?
简答来说就是一系列数据库操作,是数据库应用的基本逻辑
事务是作为一个单元的一组有序的数据库操作。如果组中的所有操作都成功,则认为事务成功。即使有一个操作失败,事务也不成功,
所有操作完成,事务成功提交,其修改用于数据库的所有进程。事务失败,事务回滚,该事务所有操作取消。

数据库的4大特性
1、原子性:事务中所有操作,要不全部成功,要么全部失败,不肯能滞留在中间的某个环节。事务执行中如果发生错误,
所有操作都会回滚到事务开始之前,就像这个事务没有执行一样
2、一致性:事务的开始之前和结束之后,数据库的数据完整性没有被破坏。
3、隔离性:指在同一时间允许一个请求用于同一个数据
4、持久性:在事务完成后,对数据库做的操作持久保存在数据库中

MySQL数据库为我们提供的四种隔离级别: 默认(读已提交)
1、Serializable (串行化):可避免脏读、不可重复读、幻读的发生。
2、Repeatable read (可重复读):可避免脏读、不可重复读的发生。
3、Read committed (读已提交):可避免脏读的发生。
4、Read uncommitted (读未提交):最低级别,任何情况都无法保证

数据库存储引起MyLsam和Innodb的区别
1、Innodb支持事务,MyLsam不支持事务
2、Innodb支持行锁,MyLsam不支持
3、Innodb支持外键,MyLsam不支持
4、Innodb是索引表,MyLsam是堆表
5、Innodb支持全文索引,MyLsam不支持

数据库三范式
1、一张表只描述一件事
2、表中的每个字段都依赖于主键
3、从表的外键必须使用主表的主键

主键、外键、索引的区别
1、主键:用来保证数据完整性,并且只有一个
2、外键:用来和其他表建立联系,可以有多个
3、索引:提高查询排序的速度,一个表可以有多个唯一索引

Mysql相比其他数据库的优点
1、能够处理拥有上万条记录的达性数据数据
2、支持常见数据库语句规范
3、可移植性高,安装简单
4、良好的运行效率,丰富的网络支持
5、调优管理优化简单

Mysql和Oracle的区别

  1. oracle支持大并发,大访问量
  2. 分页Oracle是rowmun,mysql是limit
  3. Mysql有主键自增长,oracle没有主键自增长,一般使用序列

什么是存储过程???
存储过程是一个预编译的sql语句,优点是允许模块化设计,就是说只需创建一次,差异化后在该程序中可以多次调用,
如果某次需要执行多次sql使用存储过程比单词的sql语句要快,可以用一个命令对象来调用存储过程

SQL去重
select distinct 字段 from 表

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值