MySQL问答整理

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支持的四种事务隔离级别名称,以及逐级之间的区别

SQL标准定义的四个隔离级别为:

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

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

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

15.列的字符串类型

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

16.federated表是什么?

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

原文地址:https://www.cnblogs.com/kaituorensheng/p/9690298.html

时间: 2024-10-17 14:19:36

MySQL问答整理的相关文章

mysql待整理

前面讲到的:insert - select - where not exist 其实好像也是为了实现:插入数据时,如果有重复则不插入.参见:http://snowolf.iteye.com/blog/1568926 和INSERT IGNORE INTO 差不多,不过前者可以自己加条件,后者只能根据主键来判断是否重复. MySql一些开发规范:http://www.2cto.com/database/201403/285170.html 1. MYSQL SQL_NO_CACHE的真正含义 ht

mysql 命令整理

登录命令 mysql -uroot -p21313 新建用户 insert into mysql.user(Host,User,Password) values("localhost","phplamp",password("1234")); 刷新权限 flush privileges; 创建数据库 create database 数据库名; 显示数据库 show database; 切换数据库 use 数据库名: 数据库授权 grant all

Mysql基本操作整理

1.登录数据库 格式: mysql -h主机地址 -u用户名 -p用户密码 –P端口 –D数据库 –e “SQL 内容”>mysql -uroot -p 数据库名称~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2.修改密码 格式:mysqladmin -u用户名 -p旧密码 password 新密码Mysqladmin  -uroot  -password ab12注:因为开始时root没有密码,所以-p旧密码一项就可以省略了.例2:再将root的密码改为djg345.my

mysql数据类型整理

mysql 数据类型的概念 定义数据类型的本质上是定义列 类似于描述列 数据分类的意义 分配合适的存储空间 采用不同的操作方法 对应不同的需求 整数类型 正负0 造成 负数多一个 tinyint 1byte 0-255 -128 ~ 127 smallint 2b 0~65535 mediumt 3b int 4b bigint 8b 带小数的类型 float 4b 0,(3.4) double 8b decimal M>D M+2 M<D D+2 decimal 最大支持 (65,30) 默

mysql optimize整理表碎片

当您的库中删除了大量的数据后,您可能会发现数据文件尺寸并没有减小.这是因为删 除操作后在数据文件中留下碎片所致.optimize table 可以去除删除操作后留下的数据文件碎片,减小文件尺寸,加快未来的读写操作.您只要在做完批量删除,或定期(如 每一两个月)进行一次数据表优化操作即可. OPTIMIZE TABLE通过制作原来的表的一个临时副本来工作 OPTIMIZE TABLE语法OPTIMIZE [LOCAL | NO_WRITE_TO_BINLOG] TABLE tbl_name [,

咱们的课程里,有微信的这种菜单示例吗?---酷课堂iOS交流群问答整理(201810期)

酷课堂iOS交流群 我们是一个什么样的组织:酷课堂iOS交流群,聚集了一群热爱技术.有趣.有料,平均Q龄在10年以上的"老司机",他们遍布在全国/球各地,有知名企业iOS工程师.高校大学生.自由职业者--如果你也是这样的人,欢迎加入我们,一起畅聊iOS技术及周边. "很干""很佛系"每晚11点后熄灯(禁言),只聊技术,几乎不闲聊. IT从业者自学成功的不少,但从入门到放弃的人更多.一个人走的快,一群人走的远,希望你会是坚持到最后的那一波,希望我们

mysql索引整理

一.索引: 1.创建一般索引 create index index_name on table_name(columnname[...]); 2.分析sql执行语句 在select 之前加explain eg:explain select * from table_name; 3.mysql从5.5.5之后默认采用innerdb为默认的存储引擎,该引擎支持的两种常见索引:b+树索引和hash索引,hash索引的效率高于b+树,但hash索引只支持=类型. b+树可以支持范围的eg:>< ,b+

Mysql体系结构整理

MySQL由数据文件和数据库实例组成,是单进程多线程架构组成. 数据库文件:物理操作系统文件或者其它文件的集合,在mysql中,数据库文件可以是frm.myd.myi.ibd等结尾的文件,当使用ndb存储引擎时候,不是os文件,是存放于内存中的文件; 数据库实例:由数据库后台进程/线程以及一个共享内存区组成的内存结构,共享内存可以被运行的后台进程/线程所共享.数据库关闭,数据实例就不存在了,数据库文件还是保存在磁盘上. 主要组件介绍: 1.Connectors指的是不同开发语言中与SQL的接口程

mysql引擎整理

MySQL数 据库引擎取决于MySQL在安装的时候是如何被编译的.要添加一个新的引擎,就必须重新编译MYSQL.在缺省情况下,MYSQL支持三个引 擎:ISAM.MYISAM和HEAP.另外两种类型INNODB和BERKLEY(BDB),也常常可以使用.如果技术高超,还可以使用MySQL++ API自己做一个引擎.下面介绍几种数据库引擎:     ISAM:ISAM是一个定义明确且历经时间考验的数据表格管理方法,它在设计之时就考虑到 数据库被查询的次数要远大于更新的次数.因此,ISAM执行读取操