资讯专栏INFORMATION COLUMN

PHPer面试指南-MySQL 篇

ThreeWords / 3073人阅读

摘要:常见索引类型有主键唯一索引复合索引全文索引。什么是死锁如何有效降低死锁死锁死锁一般是事务相互等待对方资源,最后形成环路,而无法继续运行。

本书的 GitHub 地址:https://github.com/todayqq/PH...

什么是索引,作用是什么?常见索引类型有那些?Mysql 建立索引的原则?

索引是一种特殊的文件,它们包含着对数据表里所有记录的引用指针,相当于书本的目录。其作用就是加快数据的检索效率。常见索引类型有主键、唯一索引、复合索引、全文索引。

索引创建的原则

最左前缀原理

选择区分度高的列作为索引

尽量的扩展索引,不要新建索引

SQL 语句的优化原则?

避免使用 Like 模糊查询

只列出需要查询的字段,而不是所有

避免使用 MySQL 函数,尽量让 MySQL 做更少的事情,减轻 MySQL 的压力

经常查询的字段,创建合适的索引,提高查询效率

什么是 MySQL 慢查询?又该如何优化?

MySQL 中查询超过指定时间的语句,被称之为「慢查询」。该如何优化呢?优化 SQL 语句,创建合适的索引,如以上两个问题。

MySQL 分库分表怎么设计

垂直分表

垂直分表在日常开发和设计中比较常见,通俗的说法叫做“大表拆小表”,某个表中的字段比较多,可以新建立一张“扩展表”,将不经常使用或者长度较大的字段,拆分出去放到“扩展表”中。

垂直分库

基本的思路就是按照业务模块来划分出不同的数据库,而不是像早期一样将所有的数据表都放到同一个数据库中。

水平分表

水平分表也称为横向分表,比较容易理解,就是将表中不同的数据行按照一定规律分布到不同的数据库表中(这些表保存在同一个数据库中),这样来降低单表数据量,优化查询性能。

水平分库分表

水平分库分表与上面讲到的水平分表的思想相同,唯一不同的就是将这些拆分出来的表保存在不同的数据库中。

什么是 MySQL 死锁?如何有效降低死锁?

死锁:死锁一般是事务相互等待对方资源,最后形成环路,而无法继续运行。

产生死锁的原因:

系统资源不足;

进程运行推进的顺序不合适;

资源分配不当等;

如何有效降低死锁:

按同一顺序访问资源;

避免事务中的用户交互;

保持事务简短并在一个批处理中;

使用低隔离级别;

使用绑定连接;

扩展阅读

MySQL索引原理及慢查询优化

分库分表的几种常见形式

大众点评订单系统分库分表实践

MySQL 死锁问题及解决

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/28155.html

相关文章

  • PHPer面试指南-前言

    摘要:先说一下面试时的心态,刚入门的程序员,技术实力不高,又大多不善言谈,面试一旦遇到难题,很容易心态失衡惊慌失措语无伦次,最终丢掉了。其实大可不必,心态坦然,是面试必备的一点。 本书的 GitHub 地址:https://github.com/todayqq/PH... 作为一位程序员,面试过多次,也面试过很多人,最近又在找工作,总结一下面试经验和面试题,希望可以帮到正在找工作的小伙伴们...

    includecmath 评论0 收藏0
  • PHPer 面试指南-扩展阅读资源整理

    摘要:前端篇收集的前端面试题和答案前端开发面试题史上最全的前端面试题汇总及答案前端工程师手册协议工作原理协议运行机制的概述协议篇原理原理解析的工作原理与的区别理解后端篇年的面试总结垃圾回收机制面向对象设计浅谈说清楚是什么和的区别索引原理及慢查 前端篇 收集的前端面试题和答案 前端开发面试题 史上最全的web前端面试题汇总及答案 前端工程师手册 HTTP协议:工作原理 SSL/TLS协议运行...

    wemall 评论0 收藏0
  • PHPer面试指南-PHP

    摘要:本书的地址篇收集了一些常见的基础进阶面试题,基础的面试题不再作答。如何实现持久化持久化,将在内存中的的状态保存到硬盘中,相当于备份数据库状态。相当于备份数据库接收到的命令,所有被写入的命令都是以的协议格式来保存的。 本书的 GitHub 地址:https://github.com/todayqq/PH... PHP 篇收集了一些常见的基础、进阶面试题,基础的面试题不再作答。 基础篇 ...

    stackvoid 评论0 收藏0
  • PHPer面试指南-算法

    摘要:快速排序快速排序是对冒泡排序的一种改进。获取中间数两值相等,返回元素比目标大,查找左部元素比目标小,查找右部查找失败扩展阅读冒泡排序实现快速排序实现各种经典算法常见算法面试篇实现二分查找法 本书的 GitHub 地址:https://github.com/todayqq/PH... 算法可以说是大厂的必考题,对于算法,一定要理解其中的精髓、原理。 冒泡排序 冒泡排序的原理:一组数据,...

    SimpleTriangle 评论0 收藏0
  • PHPer面试指南-Web

    摘要:扩展阅读收集的前端面试题和答案前端开发面试题史上最全的前端面试题汇总及答案前端工程师手册协议工作原理协议运行机制的概述 本书的 GitHub 地址:https://github.com/todayqq/PH... 对于大公司,很少会有全栈工程师这个岗位,全栈是个花哨的词,对于现在比较热门的技术,不论是 Vue 还是 Laravel,只要智商不差,看着文档,都能写出一个 CURD 来,...

    cnio 评论0 收藏0

发表评论

0条评论

ThreeWords

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<