• MySQL数据库 面试题 补充


    6.1.简单说一说drop、delete与truncate的区别

    SQL中的drop、delete、truncate都表示删除,但是三者有一些差别
    阿里内部资料delete和truncate只删除表的数据不删除表的结构 速度,一般来说: drop> truncate >delete delete
    语句是dml,这个操作会放到rollback segement中,事务提交之后才生效; 如果有相应的trigger,执行
    的时候将被触发. truncate,drop是ddl, 操作立即生效,原数据不放到rollback segment中,不能回滚.
    操作不触发trigger.

    6.2.VARCHAR(M)最多能存储的数据

    MySQL对一条记录占用的最大存储空间是有限制的,除了BLOB或者TEXT类型的列之外,其他所有的列(不包括隐藏列和记录头信息)占用的字节长度加起来不能超过65535个字节。可以不严谨的认为,mysql一行记录占用的存储空间不能超过65535个字节。这个65535个字节除了列本身的数据之外,还包括一些其他的数据(storage overhead),比如说我们为了存储一个VARCHAR(M)类型的列,其实需要占用3部分存储空间:

    1.真实数据

    2.真实数据占用字节的长度

    3.NULL值标识,如果该列有NOT NULL属性则可以没有这部分存储空间

    假设varchar_size_demo只有一个VARCHAR类型的字段,那么该字段最大占用的65532个字节。因为真实数据的长度可能占用2个字节,NULL值标识需要占用1个字节。如果该VARCHAR类型的列没有NOT NULL属性,那最多只能存储65532个字节的数据。如果该列是ascii字符集,对应的最大字符数最大为65532;如果是utf8字符集,则对应的最大字符数为21844。

    6.3.如果有一个很大的表,要删除里面95%的数据该怎么做

    先创建一张临时表,把不删除的数据存在临时表中,然后truncat删除这张表里的数据,再将临时表中的数据读取出来insert到这张表中。

    从一个表向 另一个表写入数据的sql

    INSERT INTO 目标表 (字段1, 字段2, …) SELECT 字段1, 字段2, … FROM 来源表;

    (这里的字段必须保持一致, 类型与数量)

    6.4.MySQL日志文件怎么去存储

    MySQL日志类型分为错误,常规,慢速查询,二进制日志。

    ​ (1) 错误日志:记录MySQL数据库的一般状态信息及报错信息,是我们对于数据库常规报错处理的常用日志。

    ​ (2) 常规日志:记录MySQL所有执行成功的SQL语句信息,较少使用。

    ​ (3) 慢速查询日志:记录所有条件内的慢的SQL语句,优化的一种工具日志。能够帮我们定位问题。

    ​ (4) 二进制日志:用于数据库数据的备份及恢复。

    6.5.200万条记录从100万条开始取10条

    -- 从 1000条后取 10 条
    select student_id, student_name  from student  limit 1000, 10
    
    • 1
    • 2

    OK
    查询时间: 0.024s

    -- 从第 100万条后取10条
    SELECT student_id, student_name  from student  limit 1000000, 10
    
    • 1
    • 2

    OK
    查询时间: 0.934s

    -- 先通过 主键索引排序 再查询
    select student_id, student_name from student order by student_id limit 1000000,10
    
    • 1
    • 2

    OK
    查询时间: 0.457s

    -- 先排除 前 100万条记录 再取10条
    select student_id, student_name from student
     where student_id>=(select student_id from student order by student_id limit 1000000,1) limit 10;
    
    • 1
    • 2
    • 3

    OK
    查询时间: 0.367s

  • 相关阅读:
    【目标检测】Focal Loss for Dense Object Detection
    第十六章 Dijkstra算法的讲解以及证明(与众不同的通俗证明)
    三艾云 Kubernetes 集群最佳实践
    KT6368A距离_以及蓝牙的性能描述和远距离怎么办
    贝叶斯推理
    1545_AURIX_TC275_CPU子系统_存储以及性能
    【LeetCode-中等题】17. 电话号码的字母组合
    【计算机视觉 | 目标检测】arxiv 计算机视觉关于目标检测的学术速递(9 月 8 日论文合集)
    android 11源码编译系统介绍
    【Git】git的安装与使用教程
  • 原文地址:https://blog.csdn.net/yuanchun05/article/details/127588675