![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
mysql
jiedaodezhuti
目前工作主要涉及大数据平台,数据治理方面的工作;
展开
-
MySQL的DDL、DML和DCL权限
DDL(data definition language):数据定义语言DDL主要用于定义或改变表(TABLE)的结构,数据类型,表之间的链接和约束等初始化工作上,大部分在建立表时使用。常用的语句关键字包括:1.CREATE创建2.ALTER修改3.DROP删除DML(data manipulation language):数据库操纵语言主要用于添加、删除、更新和查询数据库记录,并检查数据完整性。常用的语句关键字包括:1.SELECT 查询2.UPDATE 更新3.INSERT 插入转载 2020-10-15 16:47:52 · 2876 阅读 · 0 评论 -
MySQL索引-B+树
http://www.liuzk.com/410.html转载 2020-09-29 14:38:46 · 91 阅读 · 0 评论 -
mysql 设置外键约束
Mysql中如果表和表之间建立的外键约束,则无法删除表及修改表结构解决方法是在Mysql中取消外键约束:SET FOREIGN_KEY_CHECKS=0;然后将原来表的数据导出到sql语句,重新创建此表后,再把数据使用sql导入,然后再设置外键约束:SET FOREIGN_KEY_CHECKS=1;...原创 2020-09-29 14:30:07 · 243 阅读 · 0 评论 -
mysql初始化表及插入多条数据
– 初始化表的操作DROP TABLE IF EXISTS register;CREATE TABLE register (id INT PRIMARY KEY AUTO_INCREMENT,name VARCHAR (10) DEFAULT NULL UNIQUE KEY,age tinyint UNSIGNED DEFAULT 18,regisTime TIMESTAMP DEFAULT CURRENT_TIMESTAMP (),fund DOUBLE (9, 2) DEFAULT 100原创 2020-08-25 14:47:44 · 299 阅读 · 0 评论 -
MySQL参数优化之独立表空间
独立表空间优点:1.有自已独立的表空间;2.数据和索引都会存在自已的表空间中;3.单表可以在不同数据库移动。4.支持空间回收(除drop table操作外)Drop table操作删除大量数据后通过:alter table TableName engine=innodb,回收不用的空间。缺点:单表增加过大,如超过100个G。结论:共享表空间在Insert操作上有优势外,其它都没独立表空间表现好启用独立表空间时,合理调整一下:innodb_open_filesinnodb_file_pe原创 2020-07-07 10:20:35 · 263 阅读 · 0 评论 -
mysql配置参数binlog_format的statement,row, mixed三种格式对比
mixed是statement,row, mixed3两种的混合以insert into nametable values (1,2,3)为例,影响: 1行,且为新增1行, 对于其他行没有影响.用row格式,直接复制磁盘上1行的新增变化.以update xxtable set age=25 where name=’xxx’;只是影响1行. 用row也比较合适.全公司的人涨薪100元.update nametable set salary=salary+1000;这个语句带来的影响,是针对每一原创 2020-07-06 20:49:23 · 908 阅读 · 0 评论 -
datetime与timestamp的区别
datetime默认值为null,而timestamp的默认值不为null,为系统当前时间(current_timestatmp)。如果不做特殊处理,且update没有指定该列更新,则默认更新为当前时间。datetime占用8个字节,timestamp占用4个字节。timestamp利用率更高。二者存储方式不一样,对于timestamp,它把客户端插入的时间从当前时区转化为世界标准时间(UTC)进行存储,查询时,逆向返回。但对于datetime,基本上存什么是什么。二者范围不一样。timestamp范原创 2020-07-06 15:34:42 · 3947 阅读 · 0 评论 -
float、double和decimal的区别
float数值类型用于表示单精度浮点数值;double数值类型用于表示双精度浮点数值;float和double都是浮点型,而decimal是定点型;MySQL 浮点型和定点型可以用类型名称后加(M,D)来表示,M表示该值的总共长度,D表示小数点后面的长度,M和D又称为精度和标度,如float(7,4)的 可显示为-999.9999,MySQL保存值时进行四舍五入,如果插入999.00009,则结果为999.0001。FLOAT和DOUBLE在不指精度时,默认会按照实际的精度来显示,而DECIMAL在原创 2020-07-06 15:25:13 · 1148 阅读 · 1 评论 -
SQL优化方法
在sql查询中为了提高查询效率,我们常常会采取一些措施对查询语句进行sql优化,下面总结的一些方法,有需要的可以参考参考。1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如:select id from t where num is null可以在num上设置默认值0,确保表中num列没有null值,然后这样查询:select id转载 2020-06-24 14:25:42 · 107 阅读 · 0 评论 -
条带化
条带化(striping),当多个进程同时访问一个磁盘时,可能会出现磁盘冲突。大多数磁盘系统都对访问次数(每秒的 I/O 操作,IOPS)和数据传输率(每秒传输的数据量,TPS)有限制。当达到这些限制时,后面需要访问磁盘的进程就需要等待,这时就是所谓的磁盘冲突。避免磁盘冲突是优化 I/O 性能的一个重要目标,而 I/O 性能的优化与其他资源(如CPU和内存)的优化有着很大的区别 ,I/O 优化最有效的手段是将 I/O 最大限度的进行平衡。条带化技术就是一种自动的将 I/O 的负载均衡到多个物理磁盘上的原创 2020-06-16 22:39:40 · 161 阅读 · 0 评论 -
解决亿级数据的mysql分库分表策略
一、背景在单表数据达到千万,过亿级别时,对数据库操作就非常吃力了,分库分表提上日程,目的很简单,减小数据库的压力,缩短表的操作时间。二、数据切分策略数据切分(Sharding)就是通过某种特定的条件,将存放在同一个数据库中的数据拆分存放到多个数据库中,从而达到分散单台机器负载的情况,即分库分表。根据数据切分规则的不同,主要有两种模式,垂直切分(纵向切分),即对不同的表进行切分,存储到不同的数据库上。水平切分(横向切分)即对同一表的数据进行切分,存储到不同的数据库上。规则是根据表中数据的逻辑关系,翻译 2020-06-16 19:47:11 · 490 阅读 · 0 评论 -
pt解析慢查询日志
pt-query-digest可用于分析mysql慢查询日志,也可以分析binlog、General log、slowlog。把分析结果输出到文件中,首先对查询条件参数化,然后进行分组统计出各查询的执行时间、次数、占比等,可以借助分析结果找出问题进行优化。(1)慢查询日志分析统计pt-query-digest /app/mysql5.7/logs/slow.log(2)服务器摘要pt-summary(3)服务器磁盘监测pt-diskstats(4)mysql服务状态摘要pt-mysql-s原创 2020-06-10 16:52:09 · 695 阅读 · 0 评论 -
查看表大小(mysql)
下面会用到information_schema的tables来进行统计,首先进入use information_schema;查看data_length : 记录表的大小(单位字节)select concat(round(sum(data_length/1024*1024*1024),2),'G') as data from tables;查看表的大小,按指定的库名和表名select concat(round(sum(DATA_LENGTH/1024*1024*1024),2),'G') as原创 2020-06-08 16:58:58 · 415 阅读 · 0 评论 -
查找mysql数据库碎片程度高的表
主要用到了两个表:nformation_schema.tablesinformation_schema.INNODB_SYS_TABLESPACES结合innodb_sys_tablespaces的字段FILE_SIZE计算表的物理文件大小和逻辑大小。表的大小逻辑计算为data_length+index_length=xxx,假设是A左右,而物理文件大小是B左右,那么碎片率大约是(B-A)/60*100%碎片程度高的表:下面大家也可以把基数调整的稍大一些为1.1,然后以这个为基线来做统计。转载 2020-06-03 15:39:09 · 875 阅读 · 0 评论 -
explain执行计划分析
1.explain通过分析执行计划的结果来分析查询语句或表结构的性能瓶颈。(1)表读取的顺序(2)数据读取操作的操作类型(3)可以使用索引(4)实际使用索引(5)表与表之间的引用信息(6)有多少行被查询2.执行计划结果字段含义(1)id该字段表示执行select子句或操作表的顺序,分为三种情况:id相同时,由上到下顺序执行。id不同,若为子查询,id的序号会递增,id值越大优先级越高,越先被执行id上述两种情况同时存在时,执行分组,按上两种情况执行;(2)select_type表原创 2020-05-27 17:15:25 · 171 阅读 · 0 评论 -
MySQL的DDL、DML和DCL权限问题
DDL(data definition language):数据定义语言DDL主要用于定义或改变表(TABLE)的结构,数据类型,表之间的链接和约束等初始化工作上,大部分在建立表时使用。常用的语句关键字包括:1.CREATE创建2.ALTER修改3.DROP删除DML(data manipulation language):数据库操纵语言主要用于添加、删除、更新和查询数据库记录,并检查数据完整性。常用的语句关键字包括:1.SELECT 查询2.UPDATE 更新3.INSERT 插入原创 2020-05-27 10:29:21 · 3586 阅读 · 0 评论 -
mysql创建用户报错问题
数据库创建用户报错问题:operation create user failed for ‘lili’@’%’:解决方法:1.创建过该用户。2.若查询无此用户,则执行刷新FLUSH PRIVILEGES权限命令;然后重新执行创建语句。3.若仍然报错,则执行删除用户drop user ‘lili’@’%'命令;然后重新执行创建语句。问题原因出在:1.该用户已经存在。2.用delete删除用户后没有刷新权限。3.用户虽然不存在,但是存在该用户的权限信息。...原创 2020-05-27 10:16:07 · 1423 阅读 · 0 评论 -
MYSQL配置参数优化详解
优化是MySQL难度最大的部分,不但需要理解MySQL专业知识,还需要长时间观察并根据经验进行判断,然后设置合理的参数。1.连接请求的变量(1)max_connectionsMySQL的最大连接数,如果服务器的并发连接请求量较大,建议调高此值,以增加并行连接数量,当然这建立在机器能支撑的情况下,因为如果连接数越多,MySQL会为每个连接提供连接缓冲区,就会开销越多的内存,所以要适当调整该值,不能盲目提高设值。数值过小经常会出现ERROR 1040:Too mant connetcions错误,可以转载 2020-05-15 19:52:50 · 513 阅读 · 0 评论 -
mysql调优之利器explain
MySql调优很大一部分是索引调整,mysql的explain语句能够查看sql的效率。explian输出的一些关键属性:(1)typeeq_ref表示一般只有一行匹配,主要适用于主键或非空的唯一索引,性能非常好。ref表示用到了最左前缀或用到了非唯一索引、非主键索引,一般匹配多行,性能也不错。range就是典型的范围查询。index表示索引没有进行检索,而是扫描了整个索引树,由于索引树是有序的且较小的数据集,性能也不算太差,比如count查询一般type就是index。ALL是性能最差的,全原创 2020-05-13 09:33:11 · 154 阅读 · 0 评论 -
float double decimal类型的区别MySQL
float和double都是浮点型:float数值类型表示单精度浮点数值double数值类型表示双精度浮点数值decimal是定点型可用类型名称后加(M,D)来表示浮点型和定点型,其中M表示该值的总共长度(精度),D表示小数点后面的长度(标度),如float(7,5)的可显示为-999.99999,MySQL保存值时进行四舍五入,如果插入999.000009,则结果为999.00001。FLOAT和DOUBLE默认会按照实际的精度来显示。DECIMAL默认整数为10,小数为0。浮点数若不写精度原创 2020-05-12 16:12:17 · 179 阅读 · 0 评论 -
MySQL设置建表的默认字符编码集为utf8
首先要修改一下mysql的配置文件my.ini查看该配置路径select @@basedir;/app/mysql5.7/打开之后,修改两个地方[client]default-character-set=utf8[mysql]default-character-set=utf8[mysqld]这个地方进行修改:加上character_set_server =utf8然后重启mysql服务就可以了。...原创 2020-05-09 17:16:41 · 1346 阅读 · 0 评论 -
MySQL常见的三种存储引擎(InnoDB、MyISAM、MEMORY)
简单来说,存储引擎就是指表的类型以及表在计算机上的存储方式。存储引擎的概念是MySQL的特点,Oracle中没有专门的存储引擎的概念,Oracle有OLTP和OLAP模式的区分。不同的存储引擎决定了MySQL数据库中的表可以用不同的方式来存储。我们可以根据数据的特点来选择不同的存储引擎。在MySQL中的存储引擎有很多种,可以通过“SHOW ENGINES”语句来查看。下面重点关注InnoDB、MyISAM、MEMORY这三种。一.InnoDB存储引擎InnoDB给MySQL的表提供了事务处理、回滚、转载 2020-05-09 16:48:36 · 338 阅读 · 0 评论 -
mysql数据库的几种备份/恢复方法
1.mysqldump在日常工作中,我们会经常使用mysqldump的命令来创建SQL格式的转储文件来备份数据库,或者我们把数据导出后做数据迁移,主备搭建等操作。mysqldump是一个逻辑备份工具,复制原始的数据库对象定义和表数据产生一组可执行的SQL语句。默认情况下生成insert语句,也能生成其他分隔符的输出或XML格式的文件。使用方法:shell> mysqldump [arg...转载 2020-05-08 16:53:57 · 821 阅读 · 0 评论 -
等保2.0
等保1.0回顾在开始讲等保2.0之前,让我们先回顾一下等保1.0。等保1.0发布距今已经有10多年的时间,在这些日子里,网络安全也越来越被人们所重视。在1.0的初期,企业只要有安全意识,能开始做等保,开始测评就已经很不错了;到了中期,整体防护,渗透测试,合规开始等于安全。行业等级保护全面开展,等保开始逐渐的深入人心;再到1.0的后期,无论是企业层面还是国家层面,都更注重实质性的安全。主动防御、态势...转载 2020-04-28 17:50:42 · 532 阅读 · 0 评论 -
深入理解SQL执行效率
1、定位慢SQL定位慢SQL有两种解决方案:(1)查看慢查询日志确定已经执行完的慢查询(2)show processlist查看正在执行的慢查询1.1 通过慢查询日志确定已经执行完的慢查询Mysql的慢查询日志用来记录在Mysql中响应时间超过参数long_query_time(单位秒,默认值10)设置的值,并且扫描记录数不小于min_examined_row_limit(默认值0)的语...翻译 2020-04-15 16:21:21 · 190 阅读 · 0 评论 -
count(1)/count(*)和count(列名)区别
1、执行效果上:count(1)包括了忽略所有列,用1代表代码行,在统计结果的时候,不会忽略列值为NULLcount(*)包括了所有的列,相当于行数,在统计结果的时候,不会忽略列值为NULLll count(列名)只包括列名那一列,在统计结果的时候,会忽略列值为空(这里的空不是只空字符串或者0,而是表示null)的计数,即某个字段值为NULL时,不统计。2、执行效率上:l 列名为主...原创 2020-04-09 16:46:35 · 140 阅读 · 0 评论 -
解决MySQL-sql_mode=only_full_group_by报错
具体报错:[Err] 1055 - Expression #1 of ORDER BY clause is not in GROUP BY clause and contains nonaggregated column ‘information_schema.PROFILING.SEQ’ which is not functionally dependent on columns in GROU...原创 2020-03-31 16:28:39 · 186 阅读 · 0 评论 -
MySQL 8.0安装教程(win7 64位)
1.官网下载https://dev.mysql.com/downloads/mysql/解压2.配置初始化的my.ini文件的文件解压后目录没有的my.ini文件,在安装根目录下自行创建添加的my.ini,将文件类型改为的.ini,写入基本配置:[mysqld]# 设置3306端口port=3306# 设置mysql的安装目录basedir=C:\Program Files\...原创 2020-03-27 14:08:59 · 1243 阅读 · 0 评论 -
Percona Toolkit 安装及使用方法二
pt(Percona Toolkit)工具是由Percona公司开发的一个用perl语言编写的工具集,包含很多功能,例如在线更改数据表结构,校验主从数据,检查数据库状态,分析慢查询等。依靠这些工具可以帮助DBA更简单的维护及优化MySQL数据库。安装1.1 下载或拷贝安装包官方地址:https://www.percona.com/downloads/percona-toolkit本次直接...原创 2020-03-25 09:14:55 · 281 阅读 · 0 评论 -
mysql pt工具包安装与工具介绍
pt工具介绍Percona Toolkit即pt工具,用于管理MySQL的工具,主要功能含检查主从复制的数据一致性、检查重复索引、定位IO占用高的表文件、在线DDL等。安装pt工具wget -c install https://www.percona.com/downloads/percona-toolkit/3.0.1/binary/redhat/7/x86_64/percona-too...原创 2020-03-24 18:48:02 · 589 阅读 · 0 评论 -
linux系统彻底卸载mysql
在linux安装mysql时,有时候可能安装出错,这时候需要先把原先安装的mysql卸载,然后再重新安装,下面和大家分享一下如何在linux系统中卸载mysql。方法/步骤使用命令:rpm -qa|grep -i mysql查看是否安装过mysql,如果安装过需要先卸载掉;停止mysql服务,删除之前安装的mysql。删除命令:rpm -e MySQL-server-5.6.10-1.r...原创 2020-01-03 09:48:17 · 850 阅读 · 0 评论