MYSQL面试整理
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了MYSQL面试整理,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3291字,纯文字阅读大概需要5分钟。
内容图文
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的区别
- oracle支持大并发,大访问量
- 分页Oracle是rowmun,mysql是limit
- Mysql有主键自增长,oracle没有主键自增长,一般使用序列
什么是存储过程???
存储过程是一个预编译的sql语句,优点是允许模块化设计,就是说只需创建一次,差异化后在该程序中可以多次调用,
如果某次需要执行多次sql使用存储过程比单词的sql语句要快,可以用一个命令对象来调用存储过程
SQL去重
select distinct 字段 from 表
内容总结
以上是互联网集市为您收集整理的MYSQL面试整理全部内容,希望文章能够帮你解决MYSQL面试整理所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。