MySQL
文章平均质量分 79
AlvinUnity
这个作者很懒,什么都没留下…
展开
-
Windows环境MySQL5.6升级到5.7
准备MySQL5.6.46MySQL5.7.33备份数据备份5.6的data文件夹删除MySQL5.6# 管理员身份运行控制台# 查看一下名为mysql的服务sc query mysql # 删除mysqlsc delete mysql删除MySQL注册表创建配置文件my.ini放到bin目录下[mysql]# 设置mysql客户端默认字符集default-character-set=utf8 [mysqld]#设置3306端口port = 3306# 设原创 2021-04-28 17:50:12 · 206 阅读 · 0 评论 -
19. Mycat全局序列
简介无论分多少个节点,id不可能重复,这就是全局序列三种方式本地文件在Mycat建一个文件,专门存second序列,假设初始值为1,每当有insert语句执行时,使其+1,无论分到哪个数据节点都不会重复。Mycat部署的服务器,一旦宕机,这个文件就无法读取,即使有备机,也无法使用,抗风险能力较差,不推荐。数据库方式利用数据库一个表来进行计数累加,但是并不是每次生成序列都读写数据库,这样效率太低,Mycat会预加载一部分号段到Mycat的内存中,这样大部分读写序列都是在内存中完成的。如原创 2020-11-20 12:36:42 · 171 阅读 · 0 评论 -
18. Mycat分表
基础分表修改schema.xml,先分订单表<table name="orders" dataNode="dn1,dn2" rule="mod_rule" ></table>2. 修改rule.xml,指定规则<mycat:rule xmlns:mycat="http://io.mycat/"> <tableRule name="mod_rule"> <rule>原创 2020-11-20 05:37:02 · 244 阅读 · 0 评论 -
17. Mycat分库
分库原则拆成两个库的数据表,一定不能有关联查询需要两个空的库,用Mycat做分库的操作测试修改配置文件schema.xml<?xml version="1.0"?><!DOCTYPE mycat:schema SYSTEM "schema.dtd"><mycat:schema xmlns:mycat="http://io.mycat/"> <!--逻辑库 name名称, checkSQLschema原创 2020-11-18 22:07:23 · 189 阅读 · 0 评论 -
16. Mycat简介安装、读写分离
Mycat简介Mycat是一个数据库中间件,前身是阿里的cobar。Mycat功能读写分离从机可以单独做写操作,可以删除库表,因为从机有root用户,root用户有写权限,所以可以,如果要让从机不能写,只需要赋予用户读的权限即可。如果要用Java做读写分离,则需要配置两个数据源。配完数据源之后,当要执行与数据库相关的操作时,还需要做判断,如果是要做C、U、D这些写操作,则需要发给主机的数据库,如果是R这种读操作,则需要发给从机的数据库。一旦主机挂了、或者做切换的时候换别的机器了,则需要更改原创 2020-11-17 21:57:19 · 139 阅读 · 0 评论 -
15. MySQL主从复制
基本原理slave会从master读取binlog来进行数据同步master将改变记录到二进制日志(binary log)。这些记录过程叫做二进制日志事件,binary log eventsslave将master的binary log events拷贝到它的中继日志(relay log)slave重做中继日志中的事件,将改变应用到自己的数据库中。 MySQL复制是异步的且串行化的基本原则每个slave只有一个master每个slave只能有一个唯一的服务器ID每个master可以有原创 2020-11-14 06:32:34 · 90 阅读 · 1 评论 -
14. 查询截取分析
慢查询日志MySQL的慢查询日志是MySQL提供的一种日志记录,它用来记录在MySQL中响应时间超过阀值的语句,具体指运行时间超过long_query_time值的SQL。long_query_time的默认值为10,意思是运行10秒以上的语句。使用默认情况下slow_query_log的值为OFF,表示慢查询日志是禁用的,可以通过设置slow_query_log的值来开启SHOW VARIABLES LIKE '%slow_query_log%';使用set global slow_q原创 2020-11-11 22:37:17 · 95 阅读 · 0 评论 -
13. SQL回顾的优化
# 1.列出自己的掌门比自己年龄小的人# 优化后,不需要建索引了select e.`name`,e.age,e1.`name`,e1.age from emp eleft join dept d on e.deptId = d.idleft join emp e1 on d.CEO=e1.idwhere e1.age<e.age;# 2.列出所有年龄低于自己门派平均年龄的人# 优化后select ed.deptName,e.`name`,age,ed.avgAge from emp原创 2020-11-10 06:10:25 · 101 阅读 · 0 评论 -
12. 排序、分组优化
1. 案例# 创建索引create index idx_age_deptid_name on emp (age,deptid,name)# 1. 无过滤,不索引# 单纯的添加索引无法解决using filesort,要想使索引生效,必须要添加过滤条件,哪怕是分页explain select SQL_NO_CACHE * from emp order by age,deptid; explain select SQL_NO_CACHE * from emp order by age,dep原创 2020-11-06 22:27:10 · 147 阅读 · 0 评论 -
11. 关联、子查询索引优化
关联查询优化1. 建表SQL# 关联查询优化CREATE TABLE IF NOT EXISTS `class` (`id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,`card` INT(10) UNSIGNED NOT NULL,PRIMARY KEY (`id`));CREATE TABLE IF NOT EXISTS `book` (`bookid` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,`car原创 2020-11-04 06:31:00 · 209 阅读 · 0 评论 -
10. MySQL单表索引优化
1. 全值匹配我最爱where后面有多少个筛选字段就建多少个索引2. 最佳左前缀法则从索引的第一个字段开始,从左到右,依次命中,不能跳过索引中的任何一列,一旦跳过某个字段,会导致后面的字段都无法使用以下面这个为例,虽然可以正常使用,但是只有部分被用到了这个就是完全没用上索引3. 不在索引列上做任何操作为索引字段添加函数、运算、(字段or手动)类型转换都会导致索引失效案例一、案例二、4. 范围字段放最后如果范围查询的字段右边还有其它字段则会导致索引失效以下面原创 2020-11-02 22:48:48 · 219 阅读 · 0 评论 -
9. MySQL批量操作数据
1. 建表 CREATE TABLE `dept` ( `id` INT(11) NOT NULL AUTO_INCREMENT, `deptName` VARCHAR(30) DEFAULT NULL, `address` VARCHAR(40) DEFAULT NULL, ceo INT NULL , PRIMARY KEY (`id`)) ENGINE=INNODB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8; CREATE TABLE `emp`原创 2020-11-01 12:04:49 · 119 阅读 · 0 评论 -
8. MySQL之Explain
8.1 简介使用EXPLAIN关键字可以模拟优化器执行SQL查询语句,从而知道MySQL是如何处理SQL语句的,分析查询语句或是表结构的性能瓶颈。8.2 各字段解释id*id作为select查询的序列号,包含一组数字,通常用来表示查询语句表的读取顺序三种情况id相同执行顺序从上到下id不同如果是子查询,id的序号会递增,id值越大优先级越高,越先被执行id相同与id不相同,同时存在衍生 = DERIVED在所有组中,id值越大,优先级越高,越先执行;id如果相同,原创 2020-10-31 12:34:45 · 349 阅读 · 0 评论 -
7. MySQL索引分类
7.1 单值索引即一个索引只包含单个列,一个表可以有多个单列索引7.2 唯一索引索引列的值必须唯一,但允许有空值7.3 主键索引设定为主键后数据库会自动建立索引,innodb为聚簇索引7.4 复合索引即一个索引包含多个列7.5 语法# 查看索引show index from table_name\G;# 删除索引drop index [indexName] on mytable;# 随表一起创建create table customer( ... key(原创 2020-10-26 21:05:17 · 111 阅读 · 0 评论 -
6. MySQL索引结构
6.1 简介索引(Index)是帮助MySQL高效获取数据的数据结构。也可以理解为排好序的快速查找数据结构6.1.2 分析以上图为例:左边是数据表,最左边的是数据记录的物理地址,为了加快Co2的查找,可以维护一个像右边所示的二叉查找树,每个节点分别包含索引键值和一个指向对应数据记录物理地址的指针,这样就可以运用二叉查找在一定的复杂度内获取到相应数据,从而快速的检索出符合条件的记录。6.1.3 优势类似大学图书馆建书目索引,提高数据检索的效率,降低数据库的IO成本通过索引列对数据进行排序原创 2020-10-25 22:51:33 · 277 阅读 · 0 评论 -
5. SQL回顾
5.1 Join5.2 SQL回顾#准备工作CREATE TABLE `t_dept` ( `id` INT(11) NOT NULL AUTO_INCREMENT, `deptName` VARCHAR(30) DEFAULT NULL, `address` VARCHAR(40) DEFAULT NULL, PRIMARY KEY (`id`)) ENGINE=INNODB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8; CREATE TABLE `t原创 2020-10-24 20:28:16 · 166 阅读 · 0 评论 -
4. MySQL存储引擎
4.1 查看命令 # 查看当前mysql提供的存储引擎:mysql> show engines;# 查看当前MySQL默认的存储引擎mysql> show variables like '%storage_engine%'4.2 引擎简介1、InnoDB存储引擎*InnoDB是MySQL的默认事务型引擎,它被设计用来处理大量的短期(short-lived)事务。除非有非常特别的原因需要使用其他的存储引擎,否则应该优先考虑InnoDB引擎。2、MyISAM存储引擎*MyI原创 2020-10-23 10:55:13 · 90 阅读 · 0 评论 -
3. MySQL杂项配置与底层架构
3.1 杂项配置3.1.1 sql_modesql_mode是个很容易被忽视的变量,默认是空值,在这种设置下是可以允许一些非法操作的,比如允许一些非法数据的插入。在生成环境下必须将这个值设置为严格模式,所以开发、测试环境的数据库也必须要设置。这样在开发测试阶段就可以发现问题。show varibles like 'sqlmode';3.2 底层架构3.2.1 利用show profile 查看sql的执行周期修改配置文件vim /etc/my.cnf,在最后加上中文字符集配置query原创 2020-10-22 16:35:04 · 140 阅读 · 1 评论 -
2. MySQL字符集、权限问题
2.1 MySQL5.7直接插入中文数据报错修改配置文件vim /etc/my.cnf,在最后加上中文字符集配置character_set_server=utf8重新启动mysql已生成的库表字符集需要修改数据库的字符集mysql> alter database mydb character set 'utf8';修改数据表的字符集mysql> alter table mytbl convert to character set 'utf8';2.2原创 2020-10-22 14:48:41 · 163 阅读 · 0 评论 -
1. Linux安装MySQL5.7.16
1.1 检查工作CentOS7,执行安装命令前,先执行查询命令rpm -qa|grep mariadb如果存在如下:需要先执行卸载命令:rpm -e --nodeps mariadb-libs检查当前mysql依赖环境rpm -qa|grep libaio如果存在libaio包如下:rpm -qa|grep net-tools如果存在net-tools包如下:如果不存在可以使用yum安装检查/tmp文件夹权限由于mysql安装过程中,会通过mysql用户在/tmp目原创 2020-10-18 22:36:09 · 304 阅读 · 0 评论 -
MySQL
MySQL前言常见命令语法规范前言重新开始的MySQL常见命令查看所有的库 SHOW DATABASES打开指定库 USE 库名查看当前库的所有表 SHOW TABLES查看其它库的所有表 SHOW TABLES FROM 库名创建表 CREATE TABLES 表名( 列名,列类型; 列名,列类型 )...原创 2020-02-06 00:13:03 · 421 阅读 · 0 评论