
MySQL
MySQL学习记录
TamoR.
一个迷茫的迫切想入行的有志青年
展开
-
innodb存储的四种行格式
1.compact2.redundant3.dynamic4.compresseddynamic行格式将溢出记录全部存储到其他页上,该页只记录其他页中数据的地址compressed和dynamic的区别在于compressed会使用压缩算法对页面进行压缩页是mysql中磁盘和内存交互的基本单位也是MySQL管理存储空间的基本单位指定修改列的行格式语法为:alter table t...原创 2020-02-27 20:55:18 · 308 阅读 · 0 评论 -
MySQL深入学习安排
1.MySQL的备份和恢复2.MySQL的复制3.GTID4.MHA5.MGR6.InnoDB Cluster7.MySQL Router8.Cetus9.MyCat原创 2020-02-10 09:01:31 · 290 阅读 · 0 评论 -
6、MySQL运算符的使用
MySQL常见运算符有很多类型。数值运算符:+、-、*、/、%比较运算符:>、<、=、>=、<=、!=、<>、between(and)、in、 is null、 is not null、like、regexp或rlike逻辑运算符:and(&&) 、or(||)、xor、not(!)位运算符:&、|、^、>>、<...原创 2019-12-19 21:13:48 · 123 阅读 · 0 评论 -
1、CentOS7下安装MySQL
MySQL系列之安装MySQL(centos7)(1)前言: MySQL作为一款免费、开源数据库产品,已经问世就饱受关注,很多中小企业甚至是大企业都钟爱MySQL,随着大数据的不断发展,我们接触的信息量也越来越多,虽然NoSQL是大数据的宠儿,但MySQL的市场价值和市场占有率是不会下降的。作为开源数据库的大哥,我们怎么能不知道呢。今天,我们从最开始的安装MySQL做起,基于centos7。首...原创 2019-07-16 18:10:44 · 345 阅读 · 0 评论 -
2、MySQL指令(DDL)
MySQL指令基本分为三类:DDL(数据定义语言)、DML(数据操纵语言)、DCL(数据控制语言)。DDL:DDL指令的功能就是定义数据库database、表table、索引index、视图view、列column等。DDL与DML的区别就在与DDL是对表进行定义、对结构进行修改,DML只能处理数据库中的数据,不能对表结构进行更改。关键字有:insert、delete、update、select...原创 2019-05-12 18:58:57 · 1988 阅读 · 0 评论 -
3、MySQL指令(DML)
DML指令主要是对数据库进行增删改查,即:insert、delete、update、select。这里的insert指的是增加数据,例如:insert into tb_name [()]原创 2019-05-13 08:40:31 · 2336 阅读 · 3 评论 -
4、MySQL指令(DCL)
DCL是数据库控制语言,主要作用是DBA用来管理系统中对象权限create user 'user_name'@'localhost/ip地址' identified by 'password'; //新建用户/登录ip/密码greand [select/insert/update/delete/*] to db_name.tb_name on 'user_name'@'ip地址' ide...原创 2019-12-19 20:14:53 · 167 阅读 · 0 评论 -
5、MySQL数据类型
MySQL的数据类型有很多,主要为数值类型,字符串类型和时间日期类型,在MySQL5.7.8的版本中怎加了json类型。整数类型分为:整数类型浮点数类型定点数类型整数类型细分为:tinyint: 1字节smallint: 2字节endiumint: 3字节int/integer: 4字节bigint: 8字节浮点数类型:float: 4字节doubl...原创 2019-12-19 21:02:52 · 120 阅读 · 0 评论 -
【MySQL】MySQL的分区管理实现——range分区
以下是我对MySQL分区不分的理解,仅供参考。MySQL从5.1版本后支持分区的功能,分区是根据一定规则,将满足相同条件的数据存储在一起,以便更方便的对数据经行管理。在建立分区前,我们首先查看使用的MySQL版本是否支持分区:show variables like '%partition%';若是看到partition的值为yes,则支持分区。分区类型:1. range分区2....原创 2019-10-26 18:29:44 · 720 阅读 · 0 评论 -
MySQL表的导出
MySQL表的导出有两种方式:1,select … into outfile … 2,mysqldump工具进行导出1.select … into outfile … 方式导出:(1)默认导出地址查询:show variables like 'secure_file_priv',后续将该地址设为数据导出文件地址(2)进行数据表导出(例如:导出ALI下的ALI表):SELECT *FROM A...原创 2019-07-12 12:21:03 · 922 阅读 · 0 评论 -
CentOS7下设置MySQL启动binlog日志
在Linux系统下启动MySQL的binlogbinlog在mysql中不能通过set log_bin=1的方式开启,会提示log_bin为只读变量。所以,只能通过my.cnf中设置。1.打开my.cnf配置文件,我的系统是centos7my.cnf在/etc下,执行:vim /etc/my.cnf2.在my.cnf中的[mysqld]下添加:log_bin=mysql_binbinlo...原创 2019-07-11 16:52:11 · 715 阅读 · 0 评论 -
修改使用中的数据库的字符集
在数据库创建初期未修改字符集,运行一段时间后发现字符集不能满足需求,需要修改,又不能放弃之前的数据,这就需要进行字符集修改,常用的alter database character set *或者alter table tablename character set *修改,不能修改已经存在的数据编码格式,这里介绍一个方法可以解决这个问题。1.导出表结构:mysqldump -uroot -p ...原创 2019-07-09 17:05:41 · 739 阅读 · 0 评论 -
MySQL中trace工具的使用
MySQL5.6版本后提供了对SQL的跟踪工具trace,通过使用trace阔以让我们明白optimizer如何选择执行计划的。使用过程:1,打开trace,设置格式为JSON,设置trace的缓存大小,避免因为容量大小而不能显示完整的跟踪过程。set optimier_trace="enabled=on",end_markers_in_JSON=on;2,执行想做trace的SQL语...原创 2019-05-14 11:12:18 · 5844 阅读 · 4 评论 -
MySQL中使用SQL提示优化(优化3)
SQL提示就是人为的提示数据库以此达到优化的效果,例如:SELECT SQL_BUFFER_RESUTS *FROM tableName...这是强制MySQL生成一个临时结果集,只要临时结果集生成后,所有表的lock都被释放。如果查询后需要传输大量数据到客户端,可以借用这种方式,快速的释放表锁。1.在表查询时,添加use index 提示希望MySQL去参考的索引,但不是一定使用该索引。上...原创 2019-05-05 22:32:11 · 288 阅读 · 0 评论 -
MySQL中队order by的优化(优化2)
MySQL有两种排序方式:通过所以扫描直接返回有序的数据,先返回无序数据,后对数据进行排序(filesort)。第一种方式:前提条件索引必须是有序的,在查询时,where条件和order by 使用相同的索引,而且order by和索引的顺序一致。否则就会filesort,在SQL中使用索引的情况有:(1),select *from table_name order by key,(2),s...原创 2019-04-30 09:23:01 · 262 阅读 · 0 评论 -
MySQL中关于insert的优化(优化1)
1,当客户需要插入多条数据时,应该使用insert into table_name values(text1),(text2),(text3).... 以此减少client和database的连接和关闭的时间损耗。2,在MYISAM存储引擎时,如果是多个客户端插入很多数据时,需借用insert delayed,这是将客户插入的数据存储在内存中,等待连接空闲时,将内存中的数据插入到磁盘中.inse...原创 2019-04-30 08:36:09 · 1008 阅读 · 0 评论 -
mysql简单的定时事件调度器
事件调度器是将数据库定义的时间周期内执行某种操作,这是一个每5秒向表中插入一个系统时间:首先创建·一个测试表:democreate table demo( D_Time datetime ) ;#定义事件调度器create event insert_timeon schedule #按预时间every 5 decond #每5sdo insert into demo valu...原创 2019-04-25 07:45:12 · 431 阅读 · 0 评论 -
MySQL 存储过程插入随即号码和多位字符串
首先说一下@x,它表示是一个变量,这样向table插入时,不会把x当作是一个字符,所以我们在做随机数时,应该将x声明为一个变量,可以经行赋值操作。`@SET X = ‘’;随机数要用到 rand()函数:SET @x = rand() 这就给@x变量赋值了一个随机数(0<@x<1)rand()函数只能随机产生一个大于0,小于1的浮点数,所以我们给rand()乘以一个数,再对...原创 2019-04-24 22:55:11 · 541 阅读 · 1 评论