mysql update语句

MySQL优化(四) 慢查询的定位及优化

╄→尐↘猪︶ㄣ 提交于 2020-04-01 21:21:42
一、SQL语句优化的一般步骤: (1)通过 show status 命令了解各种 SQL 的执行效率; (2)定位执行效率较低的 SQL 语句(重点是 Select); (3)通过 explain 分析低效率的 SQL 语句的执行情况; (4)确实问题并采取相应的优化措施; 二、优化 1、show status 命令   格式: show [session | global] status like ... 如果不写[session | global],默认的是session,即取出当前回话的执行情况;  如果想查询所有的(即MySql启动到现在的信息), 则增加 global 参数; show status like "uptime" //查询MySql启动的时间; show status like "com_select" //查询MySql的查询次数 show status like "com_insert" //查询MySql的插入次数 show status like "com_update" //查询MySql的更新次数 show status like "com_delete" //查询MySql的删除次数 show global status like "uptime" //查询MySql启动的时间; show global status like "com

MySQL 复习笔记

笑着哭i 提交于 2020-03-31 05:27:31
本文内容 SQL 语句 创建数据库 创建数据表 数据完整性约束 四种基本字符类型说明 SQL 基本语句 类型转换函数 日期函数 数学函数 字符串函数 合并结果集 union CASE 函数用法 IF ELSE 语法 WHILE 循环语法 子查询 表连接 join 事务 视图 触发器 存储过程 分页存储过程 索引 临时表 1,SQL 语句 SQL 语言:结构化的查询语言(Structured Query Language),是关系数据库管理系统的标准语言。是一种解释语言,写一句执行一句,不需要整体编译执行。 语法特点: 1.没有“ ”,字符串使用‘ ’包含 2.没有逻辑相等,赋值和逻辑相等都是= 3.类型不再是最严格的。任何数据都可以包含在‘ ’以内 4.没有 bool 值的概念,但是在视图中可以输入true/false 5.有关系运算符:> < >= <= = <> != ,它返回一个bool值 6.有逻辑运算符: !(not) &&(and) ||(or) 7.不区别大小写 2,创建数据库 语法: create database 数据库名称 on primary --默认在主文件组上 ( name='逻辑名称_data' , --当你发现它不是一句完整的sql语句,而仅仅是一个处理结构中的某一句的时候,就需要添加 , size=初始大小, --数值不包含在‘’以内

10分钟梳理MySQL核心知识点

被刻印的时光 ゝ 提交于 2020-03-31 04:09:29
今天我们用10分钟,重点梳理一遍以下几方面: 数据库知识点汇总; 数据库事务特性和隔离级别; 详解关系型数据库、索引与锁机制; 数据库调优与最佳实践; 面试考察点及加分项。 一、数据库的不同类型 1.常用的关系型数据库 Oracle:功能强大,主要缺点就是贵 MySQL:互联网行业中最流行的数据库,这不仅仅是因为MySQL的免费。可以说关系数据库场景中你需要的功能,MySQL都能很好的满足,后面详解部分会详细介绍MySQL的一些知识点 MariaDB:是MySQL的分支,由开源社区维护,MariaDB虽然被看作MySQL的替代品,但它在扩展功能、存储引擎上都有非常好的改进 PostgreSQL:也叫PGSQL,PGSQL类似于Oracle的多进程框架,可以支持高并发的应用场景,PG几乎支持所有的SQL标准,支持类型相当丰富。PG更加适合严格的企业应用场景,而MySQL更适合业务逻辑相对简单、数据可靠性要求较低的互联网场景。 2.NoSQL数据库(非关系型数据库) Redis:提供了持久化能力,支持多种数据类型。Redis适用于数据变化快且数据大小可预测的场景。 MongoDB:一个基于分布式文件存储的数据库,将数据存储为一个文档,数据结构由键值对组成。MongoDB比较适合表结构不明确,且数据结构可能不断变化的场景,不适合有事务和复杂查询的场景。 HBase:建立在HDFS

MySQL基础

 ̄綄美尐妖づ 提交于 2020-03-30 12:32:30
1 SELECT * FROM table . 这条语句经常用来在不清楚table(表)中有什么数据时,能取出所有的数据瞜一眼。 2 一些求最大值的语句 select max(hire_date) from employees 求该列最大值 3 order by --1.降序order by 列名 desc( 注意desc在列名的后面 ) --2.升序order by 列名( 注意这里默认是升序 ) 或order by 列名asc --3.order by语句必须一定要放在整个sql语句的最后。 https://blog.csdn.net/weixin_30530339/article/details/94876267?depth_1-utm_source=distribute.pc_relevant.none-task&utm_source=distribute.pc_relevant.none-task 4 top --查询数学成绩最高的5名 select top 5 * from TblScore order by tMath desc --获取数学成绩最低的5名 select top 5 * from TblScore order by tMath asc --如果top后跟的不是数字,而是一个表达式一定要使用()把表达式括起来。 select top (2*2) *

mysql常用命令

拟墨画扇 提交于 2020-03-29 18:40:28
-----创建----- 查看服务器中当前有哪些数据库 mysql> show databases; 选择所使用的数据库 mysql> use 数据库名; 创建数据库 mysql> create database 数据库名; 在当前数据库中创建数据表 mysql> create table 表名 (字段 1 类型 1,...); -----删除----- 删除指定的数据库 mysql> drop database 数据库名; 删除当前或指定数据库中指定的数据表 mysql> drop table 表名; 删除所有记录 mysql> truncate table 表名; 删除字段 mysql> alter table 表名 drop 字段; 在数据表中删除指定的记录 mysql> delete from 表名 where 条件表达式; 将当前数据库表中记录清空 mysql> delete from 表名; 用optimize table来优化一下,只对MyISAM, BDB和InnoDB表起作用。运行过程中,MySQL会锁定表。 mysql> optimize table test.userinfo; -----查看----- 查看服务器中当前有哪些数据库 mysql> show databases; 显示当前数据库中有哪些数据表 mysql> show tables;

《数据库优化》- MySQL优化

瘦欲@ 提交于 2020-03-29 18:31:23
前言   MySQL作为我们最常用的 关系型数据库 ,在开发中,肯定会遇到数据量比较大的情况,而没有足够的性能作为保障,往往查询会比较慢。下面,我们展开来聊聊MySQL怎么优化的。 一、MySQL性能   1、最大数据量   没有数据量和并发数的数据库性能都是没有灵魂的。   MySQL没有限制 单表最大记录数 ,它取决于操作系统对文件大小的限制。   《阿里巴巴Java开发手册》推荐:单表行数超过 500 万行或者单表容量超过 2GB,才推荐进行分库分表。   性能由综合因素决定,抛开业务复杂度,影响程度依次是: 硬件配置、MySQL配置、数据表设计、索引优化 。 500万这个值仅供参考,并非铁律。   有位大佬操作过超过4亿行数据的单表,分页查询最新的20条记录耗时0.6秒。   SQL大致是: select field_1,field_2 from table where id < #{prePageMinId} order by id desc limit 20 ;   prePageMinId是上一页数据记录的最小ID。   虽然当时查询速度还凑合,随着数据不断增长,有朝一日必定不堪重负。   分库分表是个周期长而风险高的大活儿,应该尽可能在当前结构上优化,比如升级硬件、迁移历史数据等等,实在没辙了再分。对分库分表感兴趣的同学可以阅读分库分表的基本思想。      2

数据库原理及操作

不羁岁月 提交于 2020-03-29 17:34:06
数据库基础 传统的文件系统管理的缺陷 编写应用程序不方便; 数据冗余不可避免; 应用程序依赖性; 不支持对文件的并发访问; 数据间联系弱 难以按用户视图表示数据; 无阶段性安全控制功能。 数据库管理系统的优点 相互关联的数据的集合; 较少的数据冗余; 程序与数据相互独立; 保证数据的安全、可靠; 最大限度地保证数据的正确性; 数据可以并发使用并能同时保证一致性。 数据库管理系统 数据库是数据的汇集,它以一定的组织形式存在于存储介质上 DBMS是管理数据库的系统软件,它实现数据库系统的各种功能。是数据库系统的核心 DBA: 负责数据库的规划、设计、协调、维护和管理等工作 应用程序指以数据库为基础的应用程序; 关系型数据Key/Value 数据库 关系:关系就是二维表。并满足如下性质: 表中的行、列次序并不在重要 行row:表中的每一行,又称为一条记录(record) 列column:表中的没一列,称为属性,字段 主键(Primary key):用于唯一确定一个记录的字段 域domain:属性的取值范围,如,性别只能是‘男’和‘女’两个值 外键(Foreign key):用于表之间的一对多的关系 唯一键(Uniq key):可以为null, 非关系型数据库:NO SQL(not only SQL) mencached redis mogoDB RDBMS MySQL: MySQL,

MySQL数据库存储引擎

孤者浪人 提交于 2020-03-29 01:22:06
这里主要介绍最常用的两种存储引擎。 1.InnoDB InnoDB是一个事务型的存储引擎,有行级锁定和外键约束。 Innodb引擎提供了对数据库ACID事务的支持,并且实现了SQL标准的四种隔离级别,关于数据库事务与其隔离级别的内容请见数据库事务与其隔离级别这类型的文章。该引擎还提供了行级锁和外键约束,它的设计目标是处理大容量数据库系统,它本身其实就是基于MySQL后台的完整数据库系统,MySQL运行时Innodb会在内存中建立缓冲池,用于缓冲数据和索引。但是该引擎不支持FULLTEXT类型的索引,而且它没有保存表的行数,当SELECT COUNT(*) FROM TABLE时需要扫描全表。当需要使用数据库事务时,该引擎当然是首选。由于锁的粒度更小,写操作不会锁定全表,所以在并发较高时,使用Innodb引擎会提升效率。但是使用行级锁也不是绝对的,如果在执行一个SQL语句时MySQL不能确定要扫描的范围,InnoDB表同样会锁全表。 适用场景: 1)经常更新的表,适合处理多重并发的更新请求。 2)支持事务。 3)可以从灾难中恢复(通过bin-log日志等)。 4)外键约束。只有他支持外键。 5)支持自动增加列属性auto_increment。 2.MyIsam MyIASM是MySQL默认的引擎,但是它没有提供对数据库事务的支持,也不支持行级锁和外键,因此当INSERT(插入

mysql入门(一)

社会主义新天地 提交于 2020-03-28 18:16:16
数据库介绍 数据库是在计算机出现以后,为了解决计算机存储问题而创建, 数据库中包含表,表当中才是数据。 数据库的发展史 1. 萌芽阶段 所有存储依赖的都是文件,安全性低,查找非常困难。 2. 层次模型 1). 优点:查询分类的效率高; 2). 缺点:导航结构:如果查找同类别数据,效率低。 数据不完整(如下图) 3. 网状模型 数据不完整性:我们认为每一行数据之间是独立不相关的,网状模型解决了数据不完整的问题,但是依然没有导航结构。 4. 关系模型 现在主流的数据库模型。特点:每张表都是独立的,没有导航结构,表和表之间通过公共字段建立关系,注意:公共的字段,名字可以不一样,但是数据类型必须一致,表达的含义必须一致.数据类型一致,但不一定是公共字段。 优点:有导航结构; 缺点:关系型数据库操作不便捷(关系可能比较复杂),执行效率低下。 补充:在项目中不是每一个业务都需要关系型数据库,可以使用非关系型数据库(NoSql) 简单概念认识 记录,字段,行列,表的属性,字段的属性。 1. 一条记录我们称之为一行数据; 2. 一个字段称之为一列; 3. 表的属性就是字段; 4. 字段的属性就是该字段的功能; 5. 数据冗余指的是数据重复率。 【补充】: 1)冗余只能减少,不能杜绝; 2)冗余减少了,表的体积就减少了,更新速度提高了,保证了数据额完整性; 3)减少了冗余,但是表的数量增加了

mysql入门(四)

左心房为你撑大大i 提交于 2020-03-28 18:15:22
数据库查询操作 关键字:select select 结果集 from 数据源 [where 条件] [group by(分组)] [having 条件] [order by(排序) asc|desc] [limit(限制) s,n] 结果集(字段,*代表所有字段);s start 从第几条开始,查询n条数据,s不写默认从第一条开始。 (1)字段表达式 select 除了可以做查询,还可以调用函数,也可以用来做计算。 select rand(); (2)from子句 from 子句后面跟的是数据源。 (3)dual表 dual不是一个真实的表,只是一个语法; ​ dual的主要作用是为了保证select语句的完整性而设计的。 (4)where子句 where子句的作用,筛选过滤数据; 一般跟在数据源的后面,位置不能乱放。 (5)is null | is not null 筛选数据是否为空或不为空; 放在where的后面,是where的判断条件之一。 (6)between | not between 筛选数据的范围,用在数字集上 select * from user where uid between 2 and 4; select * from user where uid>1 and uid<5; (7)MySQL中的运算符 a.算数运算符 + - * / % ++ -- b