当前位置: 首页 > news >正文

mysql数据库面试核心概念

数据库基础
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.mrgr.cn/news/81356.html

相关文章:

  • Flutter动画学习二
  • C++的侵入式链表
  • 万字长文梳理2024年的RAG-综述
  • 凭证 90000131 保存(帐户确定出错)
  • Elasticsearch安装和数据迁移
  • elasticsearch upsert 使用
  • 我的JAVA-Web基础(2)
  • Jenkins集成部署(图文教程、超级详细)
  • 阿里 2024:技术创新与前沿研究的璀璨之年
  • redis延迟队列
  • Java SE
  • EMS(energy managment system)从0到1
  • React里使用lodash工具库
  • 机器学习基础
  • Redis缓存数据库
  • [搜广推]王树森推荐系统笔记——矩阵补充最近邻查找
  • 自动驾驶---Parking端到端架构
  • 深度学习中的残差网络、加权残差连接(WRC)与跨阶段部分连接(CSP)详解
  • 结合实例从HCI层分析经典蓝牙连接和配对过程
  • 重温设计模式--1、设计模式七大原则
  • Shell脚本
  • 在【Arduino IDE】中在线下载和离线下载【ESP系列开发板的SDK】
  • idea配置
  • SpringBoot选择CGLIB作为默认动态代理
  • C语言结构体详细讲解
  • gateway网关