• 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

  • 相关阅读:
    记录-2023/11/18
    不同优化器的应用
    复习计算机网络——第三章记录(1)
    leetcode:105从前序与中序遍历序列构造二叉树
    关于 Git 你了解多少?
    latex,不带行号的algorithm
    算法记录--好多内容也是借鉴大神的
    线程与进程的区别与联系
    Docker Compose:简化多容器管理的利器
    电脑上网课录屏怎么录?电脑上网课录屏工具什么好?
  • 原文地址:https://blog.csdn.net/yuanchun05/article/details/127588675