mysql面试核心概念

embedded/2024/12/23 12:09:38/
数据库基础
1.数据库分类
2.配置文件位置
3.修改密码
4.破解数据库密码
5.慢日志:sql语句的执行时间
6.数据类型
7.导入导出数据			
8.truncate和delete
9.事务:一组sql要么全部执行.要么全部不执行	
10.mysql的架构
11.范式
12.索引:加速查询数据1.分类关系型数据库:1.数据持久化存储2.结构化存储:字段,表的形式3.数据与表之间建立关联关系非关系型数据库:1.数据灵活存储2.数据存储内存2.配置文件主配置文件/etc/my.cnf扩展配置文件/etc/my.cnf.d/client.cnf:客户端配置文件/etc/my.cnf.d/mysql-server.cnf:服务端配置文件[mysqld]datadir=/var/lib/mysql 		   #存储地址socket=/var/lib/mysql/mysql.sock    #本机通信log-error=/var/log/mysql/mysqld.log #日志pid-file=/run/mysqld/mysqld.pid 	   #pid/etc/my.cnf.d/mysql-default-authentication-plugin.cnf:指定加密规则文件3.修改密码1.登录mysqlmysql -hlocalhost -P3306 -uroot -p;-h:指定地址,-P:端口,-u:用户,默认有个root用户,-p:密码2.设置和修改库密码设置:mysqladmin -uroot -p password 'tarena';修改:mysqladmin -uroot -p'tarena' password 'root';4.破解数据库密码1.配置文件/etc/my.cnf.d/mysql-server.cnf添加skip_grant_tables重启:systemctl restart mysql2.更新密码update mysql.user set authentication_string="" where user="root" and host="localhost";3.删除配置文件的:skip_grant_tables,重启服务5.慢日志:sql语句的执行时间show variables like "%slow_query_log":查询变量slow_query_log:开启慢日志参数long_query_time:10m, sql执行时间超过几秒被记录到日志慢日志的配置:/etc/my.cnf.d/mysql-server.cnf[mysqld]slow_query_log = 1slow_query_log_file = /path/to/your/slow_query.loglong_query_time = 2  # 设置慢查询的时间阈值,单位为秒6.数据类型(1)char(字符数),varchar(字符数)区别char:定义多少存多少,空格补齐,最多存255个字符varchar:定义多少存多少,最多存65532个字符(2)整型范围:数字的实际大小unsigned:从正数开始计数(3)float,double:分别为4,8个字节(4)枚举类型分为,ENUM,SETENUM:适用单个值字段。:选择其中的一个值存入SET:适用多个值的字段。:选择多个值存入7.导入导出数据1.查询mysql的系统变量show variables like "secure_file_priv"; 默认目录是:/var/lib/mysql-files/:secure_file_priv 是一个系统变量:MySQL 服务器将只允许SELECT ... INTO OUTFILE 和 LOAD_FILE() 这些操作中使用该目录下的文件。2.修改配置文件/etc/my.cnf.d/mysql-server.cnf,更改默认目录路径secure_file_priv=/myload 3.导入导出语法导入:导入文件的列数要和表的字段相同load data infile "/目录/文件" into table 库.表 \fields terminated by "分隔符" \lines terminated by "\n";--fields:原始文件列的分隔符,  lines:指定换行符导出:select 语句 into outfile "/目录/文件名"fields terminated by "分隔符" lines terminated by "\n";8.truncate和delete与 DELETE 语句不同,TRUNCATE 不会逐行删除数据,而是直接释放表所占用的空间并重置表。TRUNCATE 会将表中的自增列重置为其起始值(通常是1)。9.事务:一组sql要么全部执行.要么全部不执行(1)默认自己提交commit,修改变量,改为不自动提交SHOW VARIABLES LIKE 'autocommit';使用SET autocommit = 0;或SET autocommit = OFF;来关闭自动提交模式。使用SET autocommit = 1;或SET autocommit = ON;来开启自动提交模式。(2)取消内存执行的代码,rollback回滚,回滚后数据不写入硬盘性质: 原子,一致,隔离,持久10.mysql的架构客户端连接池管理工具        sql接口      解析器    查询优化器       缓存(图片资源)存储引擎(内存数据写入硬盘)InnoDB,MyISAM,MEMORY系统文件与日志(2)查看存储引擎show engines(3)查看存储引擎的变量show variables like "%engine%";11.范式(1)范式规范1NF:字段不可再分2NF:每个字段都直接依赖主键,否则拆分为多个表格3NF:某个字段的值如果可以通过其它字段求出或确定,则不单独作为一个字段存储.12.索引:加速查询数据分类:(1)作用效果:针对字段值普通索引:index唯一索引:unique主键:primary key(2)存储形式聚簇索引:数据和索引在一起非聚簇索引:(3)数据结构树形索引:btree,b+tree  哈希索引:hash全文索引:fulltext空间索引:(4)作用字段单列索引:作用单个字段复合索引:作用多个字段,使用时从左往右匹配

数据库基础
1.数据库分类
2.配置文件位置
3.修改密码
4.破解数据库密码
5.慢日志:sql语句的执行时间
6.数据类型
7.导入导出数据            
8.truncate和delete
9.事务:一组sql要么全部执行.要么全部不执行    
10.mysql的架构
11.范式
12.索引:加速查询数据

1.分类
    关系型数据库:
        1.数据持久化存储
        2.结构化存储:字段,表的形式
        3.数据与表之间建立关联关系
    非关系型数据库:
        1.数据灵活存储
        2.数据存储内存

2.配置文件
    主配置文件
        /etc/my.cnf
    扩展配置文件
        /etc/my.cnf.d/client.cnf:客户端配置文件
            
        /etc/my.cnf.d/mysql-server.cnf:服务端配置文件
            [mysqld]
            datadir=/var/lib/mysql            #存储地址
            socket=/var/lib/mysql/mysql.sock    #本机通信
            log-error=/var/log/mysql/mysqld.log #日志
            pid-file=/run/mysqld/mysqld.pid        #pid

        /etc/my.cnf.d/mysql-default-authentication-plugin.cnf:指定加密规则文件


3.修改密码
    1.登录mysql
        mysql -hlocalhost -P3306 -uroot -p;
        -h:指定地址,-P:端口,-u:用户,默认有个root用户,-p:密码
    
    2.设置和修改库密码
    
        设置:
         mysqladmin -uroot -p password 'tarena';
     
        修改:
         mysqladmin -uroot -p'tarena' password 'root';

4.破解数据库密码

    1.配置文件/etc/my.cnf.d/mysql-server.cnf添加
        skip_grant_tables

       重启:
        systemctl restart mysql

    2.更新密码
        update mysql.user 
        set authentication_string="" 
        where user="root" and host="localhost";


    3.删除配置文件的:skip_grant_tables,重启服务

5.慢日志:sql语句的执行时间

    show variables like "%slow_query_log":查询变量
    slow_query_log:开启慢日志参数
    long_query_time:10m, sql执行时间超过几秒被记录到日志

    慢日志的配置:/etc/my.cnf.d/mysql-server.cnf
    [mysqld]
    slow_query_log = 1
    slow_query_log_file = /path/to/your/slow_query.log
    long_query_time = 2  # 设置慢查询的时间阈值,单位为秒


6.数据类型

    (1)char(字符数),varchar(字符数)区别
        char:定义多少存多少,空格补齐,最多存255个字符
        varchar:定义多少存多少,最多存65532个字符

    (2)整型
        范围:数字的实际大小
        unsigned:从正数开始计数

    (3)float,double:分别为4,8个字节


    (4)枚举类型分为,ENUM,SET

        ENUM:适用单个值字段。:选择其中的一个值存入

        SET:适用多个值的字段。:选择多个值存入

7.导入导出数据

    1.查询mysql的系统变量

        show variables like "secure_file_priv"; 默认目录是:/var/lib/mysql-files/
        
        :secure_file_priv 是一个系统变量:MySQL 服务器将只允许SELECT ... INTO OUTFILE 和 LOAD_FILE() 这些操作中使用该目录下的文件。
    
    2.修改配置文件/etc/my.cnf.d/mysql-server.cnf,更改默认目录路径

        secure_file_priv=/myload 

    3.导入导出语法

        导入:导入文件的列数要和表的字段相同

        load data infile "/目录/文件" into table 库.表 \
                          fields terminated by "分隔符" \
                          lines terminated by "\n";

             --fields:原始文件列的分隔符,  lines:指定换行符

        导出:
            select 语句 into outfile "/目录/文件名"
                     fields terminated by "分隔符" 
                     lines terminated by "\n";
        
8.truncate和delete
    与 DELETE 语句不同,TRUNCATE 不会逐行删除数据,而是直接释放表所占用的空间并重置表。
    TRUNCATE 会将表中的自增列重置为其起始值(通常是1)。


9.事务:一组sql要么全部执行.要么全部不执行

    (1)默认自己提交commit,修改变量,改为不自动提交

        SHOW VARIABLES LIKE 'autocommit';
        使用SET autocommit = 0;或SET autocommit = OFF;来关闭自动提交模式。
        使用SET autocommit = 1;或SET autocommit = ON;来开启自动提交模式。

    (2)取消内存执行的代码,rollback回滚,回滚后数据不写入硬盘
    
    性质: 原子,一致,隔离,持久

    
10.mysql的架构
                                    客户端

                               连接池
      管理工具        
         sql接口      解析器    查询优化器       缓存(图片资源)

            存储引擎(内存数据写入硬盘)InnoDB,MyISAM,MEMORY

                          系统文件与日志
    
    (2)查看存储引擎
        show engines

    (3)查看存储引擎的变量
        show variables like "%engine%";


11.范式
    (1)范式规范
        1NF:字段不可再分
        2NF:每个字段都直接依赖主键,否则拆分为多个表格
        3NF:某个字段的值如果可以通过其它字段求出或确定,则不单独作为一个字段存储.


12.索引:加速查询数据
    分类:
    (1)作用效果:针对字段值
        普通索引:index
        唯一索引:unique
        主键:primary key
    (2)存储形式
        聚簇索引:数据和索引在一起
        非聚簇索引:
    (3)数据结构
        树形索引:btree,b+tree  
        哈希索引:hash
        全文索引:fulltext
        空间索引:
    (4)作用字段
        单列索引:作用单个字段
        复合索引:作用多个字段,使用时从左往右匹配


http://www.ppmy.cn/embedded/148059.html

相关文章

Vue.js 组件开发概念介绍:从入门到上手

本文我们来聊聊 Vue.js 组件开发 的一些基本概念。如果你刚开始接触 Vue 或者想更好地理解它的组件化思想,这篇文章将帮助你快速入门。Vue 组件开发是 Vue.js 的核心,掌握它,你将能用 Vue 更高效地开发应用。 什么是 Vue.js 组件&#xff1f…

问题解决:发现Excel中的部分内容有问题。是否让我们尽量尝试恢复? 如果您信任此工作簿的源,请单击“是”。

在开发同步导出功能是遇到了如标题所示的问题,解决后遂记录下来供大家参考。 RestController public class XxxController {PostMapping("/export")public BaseResponse export(RequestBody PolicyErrorAnalysisExportReq exportReq, HttpServletRespons…

【Rust自学】4.3. 所有权与函数

4.3.0 写在正文之前 在学习了Rust的通用编程概念后,就来到了整个Rust的重中之重——所有权,它跟其他语言都不太一样,很多初学者觉得学起来很难。这个章节就旨在让初学者能够完全掌握这个特性。 本章有三小节: 所有权&#xff1…

<QNAP 453D QTS-5.x> 日志记录:Docker 运行的 Flask 应用 SSL 证书 过期, 更新证书

延续上一遍: <QNAP 453D QTS-5.x> 日志记录:在 Docker 中运行的 Flask 应用安装 自签名 SSL 证书 解决 Chrome 等浏览器证书安全 当初想着为了安全,用的是默认:1月。 这不证书就过期,只能更新…

Net9解决Spire.Pdf替换文字后,文件格式乱掉解决方法

官方文档 https://www.e-iceblue.com/Tutorials/Spire.PDF/Program-Guide/Text/Find-and-replace-text-on-PDF-document-in-C.html C# 在 PDF 中查找替换文本 原文件如下图,替换第一行的新编码,把41230441044替换为41230441000 替换代码如下&#xff…

webview+H5来实现的android短视频(短剧)音视频播放依赖控件资源

https://download.csdn.net/download/qq_41294019/90167109 短视频尤其短剧的爆火关于音视频方面的需要越来越多,相关的框架、三方依赖技术也越来越成熟,本篇文章也是基于当前短剧高需要的背景来撰写,相信不少开发者也研究开发了相关的类库&a…

C语言入门指南:从零开始的编程之路

记得我刚开始接触编程时,也像很多初学者一样充满疑惑。编程看起来很神奇,但要如何开始呢?经过多年编程经验的积累,今天和大家分享如何入门C语言编程。 C语言诞生于1972年,由Dennis Ritchie在贝尔实验室开发。它的出现彻底改变了计算机编程的历史。虽然现在有很多更新的编程语…

kubernetes存储架构之PV controller源码解读

​ kubernetes存储之PV controller源码解读 摘要 本文介绍kubernetes存储架构的基础,并重点对PV controller的源码进行了学习 引入 从一个业务场景出发,假如你所在的公司,有个物理机,上面部署了web服务器,随着业务…