1.Mysql中有哪些不同的表格?

  • MyISAM: 基于IASM代码、可以被压缩,支持全文搜索,事务不安全,而且也不支持外键。如果事务回滚将会造成不完全回滚,从而不具备原子性。所以假如忽略事务以及访问并发性的话,并且需要执行大量的SELECT检索语句的话,MyISAM将是最好的选择
  • Heap:是MySQL中存取数据最快的表。这是因为他们使用存储在动态内存中的一个散列索引,不过如果MySQL或服务器崩溃,这些内存数据将会丢失
  • Merge:实际上是又一个MyISAM表的集合,合并而成的一个表,主要是为了效率的考虑,不仅仅可以提高速度、搜索效率、修复效率而且还节省了磁盘空间。
  • InnoDB:事务安全、支持外键。如果需要一个事务安全的存储引擎,建议使用它。如果你的数据执行大量的INSERT或UPDATE,出于性能方面的考虑,同样应该使用InnoDB表。对于支持事务的InnoDB类型的表来说,影响速度的主要原因是AUTOCOMMIT默认设置是打开的,而且程序没有显式调用BEGIN开始事务,导致每插入一条都自动提交,严重影响了速度。可以在执行sql前调用begin,多条sql形成一个事物(即使autocommit打开也可以),将大大提高性能
  • ISAM:简称为索引顺序访问方法,由IBM开发的,用于在磁带等辅助存储系统上存储和检索数据

2.自增ID

一张ID主键自增的表,当insert了10条记录之后,删除了第8、9、10条记录,再把Mysql重启,再insert一条记录,这条记录的ID是11还是8

如表类型是MyISAM:11。因其把自增主键ID记录到文件中,重启ID不会丢失。

如表类型是InnoDB:8。。因其把自增主键ID记录到内存中,重启会导致丢失。

3.Heap特点

  • 不允许**BLOB或**TEXT字段
  • 只允许使用=和<=>操作符来搜索记录(不允许<、>、<=或>=)
  • HEAP表不支持AUTO_INCREMENT
  • 索引不可为NULL

4.如何控制Heap的最大值

设置max_heap_table_size

5.MyISAM Static和MyISAM Dynamic区别

在MyISAM Static上的所有字段有固定宽度。动态MyISAM表将具有像TEXT,BLOB等字段,以适应不同长度的数据类型。
MyISAM Static在受损情况下更容易恢复。

6.BLOB和TEXT区别

BLOB是一个二进制对象,可以容纳可变数量的数据。有四种类型的BLOB:TINYBLOB,BLOB,MEDIUMBLOB,LONGBLOB

它们只能在所能容纳价值的最大长度上有所不同。
TEXT是一个不区分大小写的BLOB。四种TEXT类型:TINYTEXT,TEXT,MEDIUMTEXT,LONGTEXT

它们对应于四种BLOB类型,并具有相同的最大长度和存储要求。
BLOB和TEXT类型之间的唯一区别在于对BLOB值进行排序和比较时区分大小写,对TEXT值不区分大小写。

7.Mysql中有哪几种锁

  • 表级锁:开销小,加锁快,不会出现死锁。锁定粒度大,发生锁冲突的概率最高,并发量最低
  • 行级锁:开销大,加锁慢,会出现死锁。锁力度小,发生锁冲突的概率小,并发度最高

MyISAM支持表锁,InnoDB支持表锁和行锁,默认为行锁

8.NOW()和CURRENT_DATE()有什么区别?

9.Mysql查询是否区分大小写?

不区分

10. 在Mysql中ENUM的用法?

CREATE TABLE test4 (
id BIGINT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
brand VARCHAR(255) NOT NULL,
color ENUM('RED','GREEN','BLUE')
) ENGINE = InnoDB;

11.MySQL优势?

  • Mysql是开源软件,随时可用,无需付费。
  • Mysql是便携式的
  • 带有命令提示符的GUI。
  • 使用Mysql查询浏览器支持管理

12.如何区分FLOAT和DOUBLE

  • 浮点数以8位精度存储在FLOAT中,并且有四个字节。
  • 浮点数存储在DOUBLE中,精度为18位,有八个字节。

13.区分CHAR_LENGTH和LENGTH?

CHAR_LENGTH是字符数,而LENGTH是字节数。Latin字符的这两个数据是相同的,但是对于Unicode和其他编码,它们是不同的。

14.InnoDB支持的四种事务隔离级别名称,以及逐级之间的区别

  • read uncommited :读到未提交数据
  • read committed:脏读,不可重复读
  • repeatable read:可重读(默认)
  • serializable :串行事物

脏读 :一个事务读取到另一事务未提交的更新数据 不可重复读 : 在同一事务中,多次读取同一数据返回的结果有所不同, 换句话说, 后续读取可以读到另一事务已提交的更新数据. 相反, “可重复读”在同一事务中多次读取数据时, 能够保证所读数据一样, 也就是后续读取不能读到另一事务已提交的更新数据。

幻读 :一个事务读到另一个事务已提交的insert数据

15.列的字符串类型

  • SET
  • BLOB
  • ENUM
  • CHAR
  • TEXT
  • VARCHAR

16.federated表是什么?

允许访问位于其他服务器数据库上的表。

17.如果一个表有一列定义为TIMESTAMP,将发生什么?

每当行被更改时,时间戳字段将获取当前时间戳。

18.列设置为AUTO INCREMENT时,如果在表中达到最大值,会发生什么情况?

停止递增,任何进一步的插入都将产生错误,因为密钥已被使用。

19.怎样才能找出最后一次插入时分配了哪个自动增量?

LAST_INSERT_ID()将返回由Auto_increment分配的最后一个值,并且不需要指定表名称

20.怎么看到为表格定义的所有索引?

SHOW INDEX FROM <tablename>;

21.如何在Unix和Mysql时间戳之间进行转换

  • UNIX_TIMESTAMP是从Mysql时间戳转换为Unix时间戳的命令
  • FROM_UNIXTIME是从Unix时间戳转换为Mysql时间戳的命令

举例:

select UNIX_TIMESTAMP('2018-09-22 17:43:16') /* 1537609396 */
select FROM_UNIXTIME(1537609396) /*2018-09-22 17:43:16 */

22.如何在mysql中运行批处理模式

把你想要运行的命令放在一个文件中,然后告诉mysql从文件读取它的输入

shell> mysql < batch-file

23.Mysql表中允许有多少个TRIGGERS?

在Mysql表中允许有六个触发器,如下:

  • BEFORE INSERT
  • AFTER INSERT
  • BEFORE UPDATE
  • AFTER UPDATE
  • BEFORE DELETE
  • AFTER DELETE

24.MYSQL支持事务吗?

  • 在 MySQL 中只有使用了 Innodb 数据库引擎的数据库或表才支持事务。
  • 事务处理可以用来维护数据库的完整性,保证成批的 SQL 语句要么全部执行,要么全部不执行。
  • 事务用来管理 insert,update,delete 语句

25.MYSQL数据表在什么情况下容易损坏

服务器突然断电导致数据文件损坏。
强制关机,没有先关闭mysql 服务等。

26.mysql有关权限的表都有哪几个

Mysql服务器通过权限表来控制用户对数据库的访问,权限表存放在mysql数据库里,由mysql_install_db脚本初始化。这些权限表分别user,db,table_priv,columns_priv和host。

参考

https://zhuanlan.zhihu.com/p/44627083

MySQL问答整理的更多相关文章

  1. MySQL基础整理(一)之SQL基础(未完成)

    大家好,我是浅墨竹染,以下是MySQL基础整理(一)之SQL基础 1.SQL简介 SQL(Structure Query Language)是一种结构化查询语言,是使用关系模型的数据库应用语言. 2. ...

  2. MySQL 安全整理

    MySQL 安全整理 关闭外网的端口访问. 使用高位的端口号. 如果需要外网访问不给最高的权限. 如果需要外网访问也是绑定客户端. To be continued

  3. PHP调用mysql函数整理

    mysql函数整理 名称:mysql_connect() 用途:打开非持久的 MySQL 连接.如果成功,则返回一个 MySQL 连接标识,失败则返回 FALSE. 语法:mysql_connect( ...

  4. MySQL 语句整理 2019-5-3

    MySQL 语句整理 在整理完Oracle的一些常见用语句后,由于MySQL的语法跟Oracle略有不同,随跟PN的MySQL视频进行了间接整理. 查询薪水大于1800, 并且部门编号为20或30的员 ...

  5. 最全mysql笔记整理

    mysql笔记整理 作者:python技术人 博客:https://www.cnblogs.com/lpdeboke Windows服务 -- 启动MySQL net start mysql -- 创 ...

  6. Centos7搭建php+mysql环境(整理篇)

    终于将mysql+php环境搭建成功,将之前的整理一下,环境:centos7,本机IP:192.168.1.24,数据库用户名及密码都设为root,测试文件路径:/var/www/html 1.取消c ...

  7. Mysql基本操作整理

    1.登录数据库 格式: mysql -h主机地址 -u用户名 -p用户密码 –P端口 –D数据库 –e “SQL 内容”>mysql -uroot -p 数据库名称~~~~~~~~~~~~~~~ ...

  8. MysqL碎片整理优化

    先来说一下什么是碎片,怎么知道碎片有多大! 简单的说,删除数据必然会在数据文件中造成不连续的空白空间,而当插入数据时,这些空白空间则会被利用起来.于是造成了数据的存储位置不连续,以及物理存储顺序与理论 ...

  9. MySQL 笔记整理(16) --“order by”是怎么工作的?

    笔记记录自林晓斌(丁奇)老师的<MySQL实战45讲> (本篇内图片均来自丁奇老师的讲解,如有侵权,请联系我删除) 16) --“order by”是怎么工作的? 在林老师的课程中,第15 ...

随机推荐

  1. Windows 8创新之路——样章分享

    在电脑里面躺了大约也有半年多的光景了. 在Windows 8.1还有不到一个月的时间里,将这些内容分享出来,也算是对得起自己那段时间的熬夜. 希望大家多提宝贵意见. 谢! 点击标题可浏览SkyDriv ...

  2. hdu 1874 畅通工程 【spfa and dijkstra实现】

    题目 spfa: #include <bits/stdc++.h> using namespace std; const int maxn = 205; const int INF = 0 ...

  3. 3.window窗口

    window组件依赖于draggable.resizable.panel三个组件,这三个组件的特性window都可以使用: dialog组件依赖于window.linkbutton.

  4. day05_雷神_函数进阶

    #day05 1.迭代器 1.1可迭代对象 str,list,tuple,dict,set,range,文件句柄 等都是可迭代对象 第一种方法:在该对象中,含有__iter__方法的就是可迭代对象,遵 ...

  5. unigui如何连接数据库

    unigui如何连接数据库 UNIGUI既可以二层直连数据库,也可以通过中间件连接数据库. 这里只介绍UNIGUI二层直连数据库. 数据库连接控件.数据集控件都要拖放在MainModule窗体上.UN ...

  6. VARCHAR的最大长度的问题

    大家知道,在SQL Server 2000中,VARCHAR的最大长度是8000,如果字符串的长度超过8000,保存在VARCHAR中时就会被截断.如果你需要传入的参数恰好很长,比如是一个xml,很多 ...

  7. Android-Retrofit-2.0-Post与Get-请求有道词典翻译

    Retrofit-2.0版本后,内置已经集成了OKHttp,在使用Retrofit的时候 看似是Retrofit去网络请求的 实际上Retrofit只是封装,所以不要以为Retrofit是网络请求框架 ...

  8. 【CJOJ2375】 【HZOI 2015】偏序 II(cdq分治,树状数组)

    传送门 CJOJ Solution 具体实现参考上一篇Blog(四维偏序) 代码实现1(cdq+cdq+cdq+BIT) /* mail: mleautomaton@foxmail.com autho ...

  9. AJPFX平台:中国的经济是个大泡沫吗?这个泡沫即将崩解吗?

    AJPFX问:中国的经济是个大泡沫吗?这个泡沫即将崩解吗? 这一老问题,最近又一次引起世界的关注. 首先,中国在领导层变更之际,把2013年的增长目标定为7.5%,“保八”的调子不再,两位数高增长的时 ...

  10. delphi datetimepicker 修改时间无效问题

    今天用delphi写个程序,使用datetimepicker获得想要的时间.蛋疼的问题是无论怎么调整明明看着控件里面的日期变了,但是show出来的datetimepicker.datetime日期都不 ...