PHPer面试指南-MySQL 篇[通俗易懂]

PHPer面试指南-MySQL 篇

大家好,又见面了,我是全栈君。

点击上方“码农编程进阶笔记”,选择“关注公众号”

技术文章第一时间送达!

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

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

  • 索引创建的原则

    • 最左前缀原理

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

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

SQL 语句的优化原则?

  1. 避免使用 Like 模糊查询

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

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

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

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

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

MySQL 分库分表怎么设计

1.垂直分表

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

2.垂直分库

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

3.水平分表

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

4.水平分库分表

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

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

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

产生死锁的原因:

  1. 系统资源不足;

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

  3. 资源分配不当等;

如何有效降低死锁:

  1. 按同一顺序访问资源;

  2. 避免事务中的用户交互;

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

  4. 使用低隔离级别;

  5. 使用绑定连接;

关注公众号,回复「进群」即可进入PHP高级技术交流群。

PHPer面试指南-MySQL 篇[通俗易懂]

(扫码关注,获取更多知识讲解)

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/112057.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • java异或运算符号_java异或运算符使用场景

    java异或运算符号_java异或运算符使用场景异或运算符“^”是异或运算符,异或的规则是转换成二进制比较,相同为0,不同为1.异或运算符可认为是无进位的二进制相加,如:6^7如6二进制为:00000110如7二进制为:00000111则6^7=1异或运算符性质(1)0^N=N;N^N=0(2)满足交换律及结合律简单的算法题(1)如果一个数组中只有一个数出现了奇数次,剩下的数都出现了偶数次,求这个出现了奇数次的数。publicstaticvoidgetData(int[]arr){int

    2022年10月5日
    2
  • java 调用win32 api 学习总结

    java 调用win32 api 学习总结java使用JInvoke调用windowsAPI使用jinvoke调用windowsAPI。jna使用比较麻烦,需要写c代码和参数转换,jinvoke的使用就像jdk中的包一样。 官网使用参考:http://www.jinvoke.com/calling-the-win32-api-from-java 一个弹出框的例子(这种代码用于调用任何dll,不只是windows的

    2022年10月9日
    6
  • 计算机网络体系结构

    计算机网络体系结构计算机网络体系结构认识一下什么是计算机网络体系结构计算机网络是一个非常复杂、庞大的系统,涉及到很多组成部分。包括主机、路由器、各种链路、应用、协议、硬件、软件……等。那么是否存在一种体系结构可以

    2022年7月4日
    20
  • 【转】使用 Jmeter 做 Web 接口测试

    【转】使用 Jmeter 做 Web 接口测试

    2022年2月22日
    52
  • DSP28335 Flash烧写

    DSP28335 Flash烧写一.切换为Flash烧写版本方法//1.将主程序中的:MemCopy(&RamfuncsLoadStart,&RamfuncsLoadEnd,&RamfuncsRunStart);//InitFlash();//两个函数取消注释//2.将工程中的28335_RAM_lnk.cmd从工程中删除,添加CMD文件夹下的F283…

    2022年8月30日
    5
  • jquery获取select多选框选中的值

    jquery获取select多选框选中的值

    2021年11月8日
    38

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号