首页 > 数据库 >MySQL面试题(二)

MySQL面试题(二)

时间:2022-10-06 14:00:23浏览次数:47  
标签:存储 面试题 BLOB MySQL 类型 fetch SELECT

11、列对比运算符是什么?

在SELECT 语句 的列比较中使用= ,<> ,<= ,< ,> = ,> ,<< ,>> ,<=>,AND,&nbs***bsp;或 LIKE 运算符。

12、  BLOB 和 TEXT 有什么区别?

BLOB 是一个二进制对象, 可以容纳可变数量的数据。 TEXT 是 一 个 不 区 分 大 小 写 的BLOB。

BLOB 和TEXT 类型之间 的唯一区别在于对BLOB 值 进 行 排 序 和 比 较 时 区 分 大 小 写, 对TEXT 值不区分大小写。

13、MySQL_fetch_array 和 MySQL_fetch_object 的区别是什么?

以下是MySQL_fetch_array 和MySQL_fetch_object 的区别:

MySQL_fetch_array()   –  将结 果行 作为 关联 数组 或来 自数 据库 的常 规数 组返 回 。

MySQL_fetch_object  –  从数 据库 返回 结果 行作 为对 象。

14、  MyISAM 表格将在哪里存储,并且还提供其存储格式?

每个MyISAM 表格以三种格式存储在磁盘上:

·  “ .frm ” 文件 存储 表定 义

· 数据 文件 具有  “ .MYD”  (MYData)  扩 展名

索引文件具有 “ .MYI”  (MYIndex)  扩 展名

15、  MySQL 如何优化 DISTINCT?

DISTINCT 在所有列上转换为GROUP BY, 并与ORDER BY 子句结合使用。

SELECT DISTINCT t1 .a FROM t1,t2 where t1 .a=t2 .a;

16、如何显示前 50 行?

在MySQL 中, 使用以下代码查询显示前50 行:

SELECT*FROM LIMIT 0,50;

17、可以使用多少列创建索引?

任 何标准表最多可以创建16 个 索 引 列 。

18、  NOW  ()和 CURRENT_DATE  ()有什么区别?

NOW  ()  命 令 用 于 显 示 当 前 年 份 , 月 份 , 日 期 , 小 时 , 分 钟 和 秒 。

CURRENT_ DATE  ()  仅 显 示 当 前 年 份 , 月 份 和 日 期 。

19、什么是非标准字符串类型?

1 、  TINYTEXT

2 、 TEXT

3 、   MEDIUMTEXT

4 、   LONGTEXT

20、什么是通用 SQL 函数?

1 、CONCAT(A, B)  –  连 接 两 个 字 符 串 值 以 创 建 单 个 字 符 串 输 出 。通 常 用 于 将 两 个 或 多个字段合并为一个字段。

2 、 FORMAT(X, D) -  格式化数字X 到 D 有 效 数 字 。

3 、 CURRDATE(), CURRTIME() -  返 回 当 前日期或时间。

4 、 NOW  ()    –  将 当 前 日 期 和 时 间 作 为 一 个 值 返 回 。

5 、 MONTH  ()   ,   DAY  ()   ,  YEAR  ()   ,  WEEK  ()   ,  WEEKDAY  ()    –  从 日 期值中提取给定数据。

6 、 HOUR  ()   ,   MINUTE  ()   ,   SECOND  ()    –  从 时 间 值 中 提 取 给 定 数 据 。

7 、 DATEDIFF  ( A ,   B )    –  确 定 两 个 日 期 之 间 的 差 异 ,  通 常 用 于 计 算 年 龄

8 、 SUBTIMES  ( A , B )    –  确 定 两 次 之 间 的 差 异 。

9 、 FROMDAYS  ( INT )    –  将 整 数 天 数 转 换 为 日 期 值 。

21、  MySQL 支持事务吗?

在缺省模式下,MySQL 是 autocommit 模式的,所有的数据库更新操作都会即时 提交, 所以在缺省情况下,  MySQL 是不支持事务的。

但是如果你的MySQL 表类型是使用InnoDB Tables  或 BDB tables 的话, 你的 MySQL 就可以使用事务处理,使 用 SET

AUTOCOMMIT=0 就可以使MySQL 允许在非autocommit 模式, 在非 autocommit 模式下 ,你必须使用COMMIT 来提交你的更改,或者用ROLLBACK来回滚你的更改。

22、  MySQL 里记录货币用什么字段类型好

NUMERIC 和DECIMAL 类型被MySQL 实现为 同样的类型, 这在SQL92 标 准 允 许 。 他们被用于保存值, 该值的准确精度是极其重要的值, 例如与金钱有关的数 据。   当声明一个类是这些类型之一时, 精度和规模的能被(并 且 通 常 是 )指 定 。

例 如:

salary DECIMAL(9,2)

在 这个例子中, 9(precision)代 表 将 被 用 于 存 储 值 的 总 的 小 数 位 数 ,  而 2(scale)代 表 将被用于存储小数点后的位数。

因此 , 在这种情况下, 能被存储在salary 列 中 的 值 的 范 围 是 从 -9999999 .99 到 9999999.99。

23、  MySQL 有关权限的表都有哪几个?

MySQL 服务 器通过权限表来控制用户对数据库的访问, 权限表存放在MySQL 数 据库里,由MySQL_ install_db 脚本初始化。这些权限表分别user,db,table_ priv, columns_ priv 和host。

24、列的字符串类型可以是什么?

字符串类型是:

1 、 SET

2 、  BLOB

3 、  ENUM

4 、  CHAR

5 、  TEXT

25、MySQL 数据库作发布系统的存储,一天五万条以上的增量,预计运维三年,怎么优化?

1、  设计良好的数据库结构, 允许部分数据冗余, 尽量避免join 查 询 ,  提 高 效 率 。

2 、  选择合适的表字段数据类型和存储引擎, 适当的添加索引。

3 、  MySQL 库 主 从 读 写 分 离 。

4 、  找规律分表, 减少单表中的数据量提高查询速度。

5、  添加缓存机制,  比如memcached ,   apc 等 。

6 、  不经常改动的页面, 生成静态页面。

7、  书写高效率的SQL。  比如 SELECT *FROM TABEL  改为 SELECT field_ 1, field_ 2,field_ 3 FROM TABLE .

26、锁的优化策略

1、读写分离

2、分段加锁

3、 减 少 锁 持 有 的 时 间

4、多个线程尽量以相同的顺序去获取资源

不能将锁的粒度过于细化, 不然可能会出现线程的加锁和释放次数过多, 反而效 率 不如一次加一把大锁。


标签:存储,面试题,BLOB,MySQL,类型,fetch,SELECT
From: https://blog.51cto.com/u_15553407/5733596

相关文章

  • ERROR! The server quit without updating PID file (/home/mysql/data/VM-0-13-cento
    服务器中是已经安装了mysql数据库的,但是运行过程中,显示服务不存在了,查看了日志less-n VM-0-13-centos.err显示  尝试修改配置innodb_buffer_pool_size=64M......
  • 使用docker安装mysql数据库并数据挂载
    下面是关于:单机版的mysql安装部署+数据挂载。1、首先安装docker,以及docer的基本配置包括镜像加速等,相关教程前面有讲过,可以参考docker安装部署和卸载_咛果果的博客-......
  • mysql count函数
    1.count(1)andcount(字段)两者的主要区别是(1) count(1) 会统计表中的所有的记录数,包含字段为null 的记录。(2) count(字段) 会统计该字段在表中出现的次数,忽略字段......
  • linux下mysql常见错误(2003,1045)
    ‘2003错误’然后连接navicat会报1045,解决方法如下: 附加MySQL在linux下的大小写敏感问题解决方法: ......
  • Can't exec "mysql_config": No such file or directory at Makefile.PL line 89.
     001、问题Can'texec"mysql_config":NosuchfileordirectoryatMakefile.PLline89.  002、解决方法(base)[[email protected]]#yuminstal......
  • MySQL注入之宽字节注入
         宽字节注入时是利用mysql的一个特性,使用GBK编码的时候,会认为两个字符是一个汉字,例如%aa%5c就是一个汉字(前一个ascii码大于128才能到汉字的范围)。我......
  • 第一道面试题 第一道困难题解答记录
    输入一个奇数n,输出一个由*构成的n阶实心菱形。输入格式一个奇数n。输出格式输出一个由*构成的n阶实心菱形。具体格式参照输出样例。数据范围1≤n≤99输......
  • Mysql_5.7编译部署
    自述-概述:数据库是“按照数据结构来组织、存储和管理数据的仓库”。是一个长期存储在计算机内的、有组织的、可共享的、统一管理的大量数据的集合;本文主要介绍mysql_5.7......
  • new project 前后端开发总结(net6+vue+mysql+redis+mq+mongodb+ES+docker)
    newproject前后端开发总结1.开发工具:vscode,vs2022,sqlserver2.前端:vue3,vite,typescript,scss,elementplus,router,asiox,vuex3.后端:.net6,automapper,autoface,sqlsu......
  • CentOS 7 下安装 MySQL 8.x
    CentOS7下安装MySQL8.x作者:Grey原文地址:博客园:CentOS7下安装MySQL8.xCSDN:CentOS7下安装MySQL8.x环境CentOS版本:CentOS7下载地址:CentOS7安装方法见:L......