zoukankan      html  css  js  c++  java
  • 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高级技术交流群。

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

  • 相关阅读:
    python爬虫基础(requests、BeautifulSoup)
    python中字典按键、值进行排序
    进程和线程的区别
    MySQL中的索引
    python中浅拷贝和深拷贝的区别
    谈谈final、finally、finalize的区别
    python中布尔值是false
    生成器的阐释
    文件处理
    内置函数
  • 原文地址:https://www.cnblogs.com/lxwphp/p/15453098.html
Copyright © 2011-2022 走看看