1.mysql中的语言有哪些?分别代表什么意思
1、DDL(Data Define Language) 数据定义语言
2、DML(Data Manipulation Language) 数据操作语言
3、DQL(Data Query Language) 数据查询语言
4、DCL(Data Control Language) 数据控制语言
5、TCL(Transaction Control Language) 事务控制语言

2.mysql中有哪些约束?分别有什么用?
NOT NULL 非空约束,规定某个字段不能为空
UNIQUE 唯一约束,规定某个字段在整个表中是唯一的
PRIMARY KEY 主键(非空且唯一)约束
FOREIGN KEY 外键约束
CHECK 检查约束
DEFAULT 默认值约束

3.date,time,timestamp,这三种日期数据类型,分别是什么?
data:日期值(年月日)
time:时间值(时分秒)
timestamp:现在的具体时间 (年月日 时分秒)
4.内联接和外联接有什么区别?适用于什么场景?可以举例说明
内连接(inner join):取出两张表中匹配到的数据,匹配不到的不保留
外连接(outer join):取出连接表中匹配到的数据,匹配不到的也会保留,其值为NULL

5.事务的特性有那些?事务的隔离级别有哪些?mysql的默认隔离级别是什么?
原子性:要么全部成功,要么全失败
一致性:从一个一致性到另一个一致性中,没有中间态
隔离性:在提交一个事务完成之前,其他事务是不可见的
持久化:一旦事务提交,就永远是一个样子了

隔离级别;
读未提交:
读已提交:
可重复读:
串行化:
默认级别:
可重复读
6.mysql的索引
一般主键和外键通常都有索引,其他需要索引的字段包含的情况如下:
1.字段出现在查询条件中,并且查询条件可以使用索引;
2.语句使用频率高的
3.通过字段条件可筛选的记录集
7.分库 分表
分库分表的步骤:
根据容量(当前容量和增长量)评估分库或分表个数 ->选key(均匀)->分表规则(hash或range等)-> 执行(一般双写)-> 扩容问题(尽量减少数据的移动)
分表:
(1)纵向分表:
将本来一个表中那个数据,根据数据的活跃度进行分离(因为不同活跃的数据,处理方式是不同的)
(2)横线分表:
根据数据量的规模来划分,保证单表的容量不会太大,从而来保证单表的查询等处理能力
分库:
1.水平分库:
以字段为依据,按照一定策略(hash、range等),将一个库中的数据拆分到多个库中。
结果:
每个表的结构都一样;
每个表的数据都不一样,没有交集;
所有表的并集是全量数据;
2.垂直分库:
以表为依据,按照业务归属不同,将不同的表拆分到不同库中
结果:
每个库的结构都不一样;
每个库的数据也不一样,没有交集;
所有库的并集是全量数据;

8.数据库优化
优化方式:
1.选取最适用的字段属性
MySQL可以很好的支持大数据量的存取,但是一般说来,数据库中的表越小,在它上面执行的查询也就会越快
2.使用连接(JOIN)来代替子查询(Sub-Queries)
MySQL从4.1开始支持SQL的子查询。这个技术可以使用SELECT语句来创建一个单列的查询结果,然后把这个结果作为过滤条件用在另一个查询中。
3.使用联合(UNION)来代替手动创建的临时表
MySQL从4.0的版本开始支持union查询,它可以把需要使用临时表的两条或更多的select查询合并的一个查询中。
在客户端的查询会话结束的时候,临时表会被自动删除,而保证数据库整齐、高效
4.事务
事务的另一个重要作用是当多个用户同时使用相同的数据源时,它可以利用锁定数据库的方法来为用户提供一种安全的访问方式,
这样可以保证用户的操作不被其它的用户所干扰。
5.锁定表
下面的例子就用锁定表的方法来完成前面一个例子中事务的功能
6.使用外键
外键可以保证每一条销售记录都指向某一个存在的客户
7.使用索引
MySQL从版本3.23.23开始支持全文索引和搜索。全文索引在MySQL中是一个FULLTEXT类型索引,但仅能用于MyISAM类型的表。
对于一个大的数据库,将数据装载到一个没有FULLTEXT索引的表中,然后再使用ALTERTABLE或CREATEINDEX创建索引,将是非常快的。
8.优化的查询语句
首先,最好是在相同类型的字段间进行比较的操作。
其次,在建有索引的字段上尽量不要使用函数进行操作。
第三,在搜索字符型字段时,我们有时会使用LIKE关键字和通配符,这种做法虽然简单,但却也是以牺牲系统性能为代价的

9.SQL优化
(1).创建索引
(2).复合索引
(3).索引不包含有NULL值的列
(4).使用短索引
(5).排序的索引问题
(6).like语句操作
(7).不要在列上操作
(8).不使用NOT IN 和<>操作

10.MYSQL存储引擎
(1).MyISAM:这种引擎是mysql最早提供的。这种引擎又可以分为静态MyISAM、动态MyISAM 和压缩MyISAM三种,不管是何种MyISAM表,目前它都不支持事务,行级锁和外键约束的功能。
(2).MyISAM Merge引擎:这种类型是MyISAM类型的一种变种。合并表是将几个相同的MyISAM表合并为一个虚表。常应用于日志和数据仓库。
(3).InnoDB:InnoDB表类型可以看作是对MyISAM的进一步更新产品,它提供了事务、行级锁机制和外键约束的功能,也是目前MySQL默认的存储引擎。
(4).Memory(heap):这种类型的数据表只存在于内存中。它使用散列索引,所以数据的存取速度非常快。因为是存在于内存中,所以这种类型常应用于临时表中。
(5) .archive:这种类型只支持select 和 insert语句,而且不支持索引。常应用于日志记录和聚合分析方面。

mysql知识点二的更多相关文章

  1. [转]10分钟梳理MySQL知识点:揭秘亿级高并发数据库调优与最佳实践法则

    转:https://mp.weixin.qq.com/s/RYIiHAHHStIMftQT6lQSgA 做业务,要懂基本的SQL语句: 做性能优化,要懂索引,懂引擎: 做分库分表,要懂主从,懂读写分离 ...

  2. 一生挚友redo log、binlog《死磕MySQL系列 二》

    系列文章 原来一条select语句在MySQL是这样执行的<死磕MySQL系列 一> 一生挚友redo log.binlog<死磕MySQL系列 二> 前言 咔咔闲谈 上期根据 ...

  3. MySQL优化二(连接优化和缓存优化)

    body { font-family: Helvetica, arial, sans-serif; font-size: 14px; line-height: 1.6; padding-top: 10 ...

  4. 从零开始搭建框架SSM+Redis+Mysql(二)之MAVEN项目搭建

    从零开始搭建框架SSM+Redis+Mysql(二)之MAVEN项目搭建 废话不说,直接撸步骤!!! 1.创建主项目:ncc-parent 选择maven创建项目,注意在创建项目中,packing选择 ...

  5. python/MySQL练习题(二)

    python/MySQL练习题(二) 查询各科成绩前三名的记录:(不考虑成绩并列情况) select score.sid,score.course_id,score.num,T.first_num,T ...

  6. Python/MySQL(二、表操作以及连接)

    Python/MySQL(二.表操作以及连接) mysql表操作: 主键:一个表只能有一个主键.主键可以由多列组成. 外键 :可以进行联合外键,操作. mysql> create table y ...

  7. mysql进阶(二十九)常用函数

    mysql进阶(二十九)常用函数 一.数学函数 ABS(x) 返回x的绝对值 BIN(x) 返回x的二进制(OCT返回八进制,HEX返回十六进制) CEILING(x) 返回大于x的最小整数值 EXP ...

  8. mysql进阶(二十八)MySQL GRANT REVOKE用法

    mysql进阶(二十八)MySQL GRANT REVOKE用法   MySQL的权限系统围绕着两个概念: 认证->确定用户是否允许连接数据库服务器: 授权->确定用户是否拥有足够的权限执 ...

  9. mysql进阶(二十七)数据库索引原理

    mysql进阶(二十七)数据库索引原理 前言   本文主要是阐述MySQL索引机制,主要是说明存储引擎Innodb.   第一部分主要从数据结构及算法理论层面讨论MySQL数据库索引的数理基础.    ...

  10. mysql进阶(二十六)MySQL 索引类型(初学者必看)

    mysql进阶(二十六)MySQL 索引类型(初学者必看)   索引是快速搜索的关键.MySQL 索引的建立对于 MySQL 的高效运行是很重要的.下面介绍几种常见的 MySQL 索引类型.   在数 ...

随机推荐

  1. Ubuntu16.04设置root以及root用户自动登录

    自己之前做的笔记确实不是很详细.因为像是一些环境的配置,即使是这样做,但是自己大概率下是不知道这样做的原因,所以很多东西能不能弄好是有很大的运气成分在里面.所以就很需要记录下自己到底干了些什么. 所以 ...

  2. 工程师突击:SAP ABAP实用程序开发攻略.pdf

    工程师突击:SAP ABAP实用程序开发攻略.pdf 有需要的联系 wx :erpworld

  3. 90、java ftp 读取文件

    https://blog.csdn.net/qq_38380025/article/details/80679128

  4. RabbitMQ学习第七章:消息确认机制之事务机制

    RabbitMQ消息确认机制之事务机制. RabbitMQ中,我们可以通过持久化数据 解决RabbitMQ服务器异常 的数据丢失问题. 问题:生产者将消息发送出去,消息到底有没有到达RabbitMQ服 ...

  5. Django和DRF的区别

    Django和DRF的区别 一.Django REST Framwork 和 Django 1.两者的概念: Django REST Framwork: 将数据库的东西通过ORM的映射取出来,通过vi ...

  6. 用cmd的方式执行exe程序

    在asp.net中调用process.start执行程序,需要设置运行iis进程用户的权限,比较麻烦, MS的站点上有一篇说明:http://support.microsoft.com/default ...

  7. python中使用to_excel时如何不覆盖原有数据来新建sheet页

    经常通过各种三方库操作Excel时,会遇到各种问题.这个库不支持这个方法,那个库支持但是又会丢失原来的数据....都是问题! . . . import openpyxl import pandas a ...

  8. java 泛型使用

    泛型类 // 简单泛型 class Point<T>{ // 此处可以随便写标识符号,T是type的简称 private T var ; public T getVar(){ return ...

  9. redux-thunk初步使用

    redux中间件,用来处理异步action 返回 一个函数  内部函数接收存储方法dispatch和getState参数 demo: import { GET_ONLINE_STATUS, SET_O ...

  10. Oracle数据库简单常用语句

    简单常用语句: 登录超级用户 sqlplus / as sysdba; 登录普通用户 connect username/password; 显示当前用户名 show user; 查询所有用户名 sel ...