Q:MySQL常用的存储引擎有哪些?

A:MyISAM及InnoDB,5.5版本后默认数据库引擎由MyISAM变为InnoDB

Q:MyISAM及InnoDB有什么区别?至少5点

A: ①.InnoDB支持事务,MyISAM不支持

  ②.InnoDB支持外键,MyISAM不支持

  ③.InnoDB支持行级锁,MyISAM支持表级锁

  ④.InnoDB不支持全文索引,MyISAM支持(5.6版本后InnoDB也支持全文索引)

  ⑤.MyISAM数据是以文件形式存储,跨平台数据转移很方便

Q:MyISAM及InnoDB两者select count(*)哪个更快,为什么?

A:MyISAM快,因为其内部维护了一个计数器,可以直接调用,而InnoDB需要扫描全表


Q:MySQL中varchar与char的区别?

A:char是定长,最多存放255个字符;varchar是变长,最大存放字符数由最大有效行(不能超过65535字节)及字符集(gbk:1字符=2字节,utf8:1字符=3字节)确定

Q:varchar(10)与char(10)有什么区别?

A:char(10)表示存储10个字符,如果少于10个则用空格补全,而varchar(10)5.0版本以下是指最多存储10个字节,5.0版本以上是指最多存储10个字符,插入多少字符则存储多少

Q:在满足长度的前提下设计字段长度是选择varchar(255)还是varchar(256)?为什么

A:选择varchar(255),因为如果字符串长度超过255,varchar需要使用两个字节存储字符串长度,小于255时只需要一个字节,可以避免不必要的消耗


Q:数据库事务隔离级别有哪几种?

A:有4种,分别是read uncommitted、read committed、repeatable read、serializable

Q:事务并发时会出现哪几种问题?

A:有3种,分别是脏读、不可重复读、幻读;脏读是指事务A读到事务B未提交的数据;不可重复读是指在事务A多次读取同一个数据,事务B在事务A多次读取过程中对数据做了更改并提交,导致事务A多次读取数据不一致;幻读是指在事务A读取某一范围内的数据,另一个事务B在这个范围内执行插入或者删除操作,事务A发现新的“幻影”行;不可重复读侧重于修改,幻读侧重于新增或删除

Q:4种隔离级别分别会出现哪些并发问题?

A:

隔离级别
脏读(Dirty Read)

不可重复读(Nonrepeatable Read)

幻读(Phantom Read)
Read Uncommitted
读取未提交内容
Read Committed
读取已提交内容
×
Repeatable Read
可重复读
× ×
Serializable
串行化
× × × 

Q:MySQL explain命令有什么作用?

A:它可以对select语句进行分析,输出select语句执行的详细信息,以便开发人员优化

Q:explain命令输出的type代表什么?有哪些取值?有什么作用?

A:type代表join类型,它是判断查询是否高效的重要依据,常用的取值有system(表中只有一条数据,特殊的const类型)、const(针对主键或唯一索引查询)、eq_ref(通常出现在多表的join查询,针对主键或唯一索引)、ref(通常出现在多表的join查询,针对非主键索引、非唯一索引或最左前缀规则索引查询)、range(使用索引范围查询)、index(全索引扫描)、all(全表扫描)。它们的性能依次下降

Q:创建联合索引(a,b,c)实际上相当于创建了几个索引?

A:相当于创建了3个索引,即(a)、(a,b)、(a,b,c)

Q:如果用字段b,c或a,c做查询条件能用到联合索引吗?为什么?

A:b、c不能,a,c能用到a列索引。因为联合索引有最左前缀的原则,InnoDB索引实现底层为b+树,是按照从左到右的顺序来建立搜索树的

参考:

1.https://segmentfault.com/a/1190000008131735#articleHeader8

2.http://blog.codinglabs.org/articles/theory-of-mysql-index.html

MySQL QA的更多相关文章

  1. 怎样知道linux是否安装了mysql

    1. 使用 [root@localhost Desktop]# rpm -qa |grep mysql (-qa查询已经安装的软件) mysql-libs-5.1.71-1.el6.x86_64 结果 ...

  2. spring整合atomikos实现分布式事务

    前言 Atomikos 是一个为Java平台提供增值服务的并且开源类事务管理器,主要用于处理跨数据库事务,比如某个指令在A库和B库都有写操作,业务上要求A库和B库的写操作要具有原子性,这时候就可以用到 ...

  3. Linux安装MySql5.7及配置(yum安装)

    Linux安装MySql5.7及配置(yum安装) [root@xld ~]# rpm -q centos-release centos-release-7-7.1908.0.el7.centos.x ...

  4. linux安装好的mysql rpm -qa |grep mysql不见

    输入: rpm -qa|grep -i mysql

  5. QA:无法为具有固定名称“MySql.Data.MySqlClient”...

    Question: 无法为具有固定名称“MySql.Data.MySqlClient”的 ADO.NET 提供程序加载在应用程序配置文件中注册的实体框架提供程序类型“MySql.Data.MySqlC ...

  6. MySQL高级知识- MySQL的架构介绍

    [TOC] 1.MySQL 简介 概述 MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle公司. MySQL是一种关联数据库管理系统,将数据保存在不同的表中,而 ...

  7. Centos6.5下编译安装mysql 5.6

    一:卸载旧版本 使用下面的命令检查是否安装有MySQL Server rpm -qa | grep mysql 有的话通过下面的命令来卸载掉 rpm -e mysql //普通删除模式 rpm -e ...

  8. centos下彻底删除 和重装MYSQL

    1 删除Mysql      yum remove  mysql mysql-server mysql-libs mysql-server;       find / -name mysql 将找到的 ...

  9. Linux1 在Linux(CentOS)上安装MySql详细记录

    前记:  毕业两年了,前两天换了份工作,由以前的传统行业跳到了互联网行业.之前的公司一直在用WinServer2003+Tomcat+SqlServer/Oracle这套部署环境.对于Linux+To ...

随机推荐

  1. Qt 窗体使用 label 标签插入静态图片

    最近在做毕业设计,上位机软件用的Qt,界面当中需要加入学校校徽,结果百度了n多种方法,有用QPixmap的: QPixmap myPix("./school.jpg"); ui-& ...

  2. Java对象与JSON互相转换jsonlib以及手动创建JSON对象与数组——(二)

    首先声明一下,jsonlib转换与GSON相比太差劲了,操作不是一般的繁琐.GSON可以直接转换成各种集合与对象类型.强烈推荐使用GSON.而且GSON一个方法就可以解决,jsonlib转来转去太繁琐 ...

  3. oracle里的tns是什么意思

    参考http://www.jb51.net/article/44668.htm TNS简要介绍与应用 Oracle中TNS的完整定义:transparence Network Substrate透明网 ...

  4. AutoMapper中用户自定义转换

    Custom Type Converters Sometimes, you need to take complete control over the conversion of one type ...

  5. 【转】Shell编程基础篇-下

    [转]Shell编程基础篇-下 1.1 条件表达式 1.1.1 文件判断 常用文件测试操作符 常用文件测试操作符 说明 -d文件,d的全拼为directory 文件存在且为目录则为真,即测试表达式成立 ...

  6. PP图和QQ图

     一. QQ图      分位数图示法(Quantile Quantile Plot,简称 Q-Q 图)       统计学里Q-Q图(Q代表分位数)是一个概率图,用图形的方式比较两个概率分布,把他们 ...

  7. STM32F103X datasheet学习笔记---Interrupts and events

    1.前言 本章主要介绍STM32中断和事件相关的内容 2.NVIC NVIC管理着包括内核异常等中断 主要特性 68个外部中断源(不包含16个内部中断线) 可编程优先级为16级 低延迟异常和中断处理 ...

  8. Linux Makefile 编译速度的优化【转】

    转自:https://blog.csdn.net/QQ1452008/article/details/51851801 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog. ...

  9. Jenkins实现定时、顺序编译

    1      Jenkins实现定时.顺序编译 l  Jenkins 编译流程:更新代码,编译公共服务,编译普通服务(普通服务依赖于公共服务).以下图为例,首先执行 update,再执行 icto_c ...

  10. Jquert data方法获取不到数据,显示为undefined。

    在使用jquery的data-xxxx自定义属性名使用小写 以下是我测试代码: 结果显示Undefined 现在将“data-Name”变为“data-name”,将大写的部分全部变为小写. 可以获取 ...