13.MySQL联表查询中的驱动表,优化查询 , 以小表驱动大表=========================总结===========================
1.开启慢查询日志,设置阀值 , 比如超过5秒就是慢SQL,并把它抓取出来 。
2.explain 慢SQL 分析
3.show profile 查询SQL在MySQL服务器里面的执行细节和声明周期 。
如何将mysql 表名变成大写以我的windows环境为例:
在my.ini[mysqld]下面增加
lower_case_table_names=0
就可以新建大写表名的表了
也可以rename table 表名 to 新表名 去改现有的表
改时注意 要先改成一个不存在的表 再改回全部大写的表
比如你要把test改成TEST
先rename table test to test1
再rename table test1 to TEST
MySQL8数据迁移大表捷径【表空间迁移】0. 目标端必须有同名表,没有则建一个空表;
####################################
1、 源端文件准备
源端:
flush tables t for export;
复制
t.ibd, t.cfg到目标端 。
###############################
flush tables tt7for export;
cptt7*../ops
2、 目标端存在同样的表则丢弃原来的数据文件
目标端:
alter table tt7discard tablespace;
3、 目标端加载新的数据文件 t.ibd
alter table tt7 import tablespace;
4、源端释放锁
源端:
unlock tables;
过程中主要异常处理:
#####################################################
SELECT* FROMops2.tt7;
SELECT* FROMops.tt7;
import tablespace报错:
mysql alter table tt7 import tablespace;
ERROR 1812 (HY000): Tablespace is missing for table ops.tt7.
确认再相应的目录存在两个文件
确认属主和权限
#####################################################
过程
[root@qaserver120 ops]# ll
total 80
drwxr-xr-x 2 rootroot36 Dec2 21:42 000
-rw-r----- 1 mysql mysql 114688 Dec2 21:17 tt2.ibd
[root@qaserver120 ops]#
[root@qaserver120 ops]#
[root@qaserver120 ops]#
[root@qaserver120 ops]# cp 000
[root@qaserver120 ops]# ll
drwxr-xr-x 2 rootroot36 Dec2 21:42 000
-rw-r----- 1 mysql mysql 114688 Dec2 21:17 tt2.ibd
-rw-r----- 1 rootroot627 Dec2 21:45 tt7.cfg
-rw-r----- 1 rootroot114688 Dec2 21:45 tt7.ibd
[root@qaserver120 ops]# chown mysql.mysql tt7*
[root@qaserver120 ops]#
[root@qaserver120 ops]# ll
drwxr-xr-x 2 rootroot36 Dec2 21:42 000
-rw-r----- 1 mysql mysql 114688 Dec2 21:17 tt2.ibd
-rw-r----- 1 mysql mysql627 Dec2 21:45 tt7.cfg
-rw-r----- 1 mysql mysql 114688 Dec2 21:46 tt7.ibd
[root@qaserver120 ops]#
#####################################################
mysql show tables;
---------------
| Tables_in_ops |
---------------
| tt2|
| tt7|
---------------
2 rows in set (0.00 sec)
mysql select * from tt7;
ERROR 1814 (HY000): Tablespace has been discarded for table 'tt7'
mysql alter table tt7 import tablespace;
ERROR 1812 (HY000): Tablespace is missing for table ops.tt7.
mysql
mysql alter table tt7 import tablespace;
Query OK, 0 rows affected (0.08 sec)
mysql
mysql select * from tt7;
-------------- ------
| x| y|
-------------- ------
| BBBBBB| NULL |
| AAAAAA| NULL |
| BBBBBB| NULL |
| 555555555555 | NULL |
| AAAAAA| NULL |
| BBBBBB| NULL |
| 555555555555 | NULL |
-------------- ------
7 rows in set (0.00 sec)
mysql
###############################################
################################################
mysql mysql show tables;
----------------
| Tables_in_ops2 |
----------------
| tt2|
| tt3|
| tt7|
----------------
3 rows in set (0.00 sec)
mysql
mysql use ops
Database changed
mysql show tables;
---------------
| Tables_in_ops |
---------------
| tt2|
---------------
1 row in set (0.00 sec)
mysql
mysql use ops2;
Database changed
mysql select * from tt7;
-------- ------
| x| y|
-------- ------
| BBBBBB | NULL |
-------- ------
1 row in set (0.00 sec)
mysql
mysql
mysql insert into tt7 select * from tt3;
Query OK, 3 rows affected (0.00 sec)
Records: 3Duplicates: 0Warnings: 0
mysql insert into tt7 select * from tt3;
Query OK, 3 rows affected (0.00 sec)
Records: 3Duplicates: 0Warnings: 0
mysql select * from tt7;
-------------- ------
| x| y|
-------------- ------
| BBBBBB| NULL |
| AAAAAA| NULL |
| BBBBBB| NULL |
| 555555555555 | NULL |
| AAAAAA| NULL |
| BBBBBB| NULL |
| 555555555555 | NULL |
-------------- ------
7 rows in set (0.00 sec)
mysql
mysql commit;
Query OK, 0 rows affected (0.00 sec)
mysql
mysql exit
Bye
[root@qaserver120 pkg]# cd /data/mysql/ops2
[root@qaserver120 ops2]# ll
total 240
-rw-r----- 1 mysql mysql 114688 Dec2 21:17 tt2.ibd
-rw-r----- 1 mysql mysql 114688 Dec2 21:17 tt3.ibd
-rw-r----- 1 mysql mysql 114688 Dec2 21:36 tt7.ibd
[root@qaserver120 ops2]#
[root@qaserver120 ops2]#
[root@qaserver120 ops2]#
[root@qaserver120 ops2]# mysql -u'root'-p'fgxkB9;Zq40^MFQUi$PJ'-A
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.Commands end with ; or \g.
Your MySQL connection id is 56
Server version: 8.0.18 MySQL Community Server - GPL
Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql use ops2
Database changed
mysql
mysql flush tables tt7for export;
Query OK, 0 rows affected (0.00 sec)
mysql show tables;
----------------
| Tables_in_ops2 |
----------------
| tt2|
| tt3|
| tt7|
----------------
3 rows in set (0.01 sec)
mysql exit
Bye
[root@qaserver120 ops2]# ll
total 240
-rw-r----- 1 mysql mysql 114688 Dec2 21:17 tt2.ibd
-rw-r----- 1 mysql mysql 114688 Dec2 21:17 tt3.ibd
-rw-r----- 1 mysql mysql 114688 Dec2 21:36 tt7.ibd
[root@qaserver120 ops2]# ll
total 240
-rw-r----- 1 mysql mysql 114688 Dec2 21:17 tt2.ibd
-rw-r----- 1 mysql mysql 114688 Dec2 21:17 tt3.ibd
-rw-r----- 1 mysql mysql 114688 Dec2 21:36 tt7.ibd
[root@qaserver120 ops2]# pwd
/data/mysql/ops2
[root@qaserver120 ops2]# cdcd /data/mysql
-bash: cd: cd: No such file or directory
[root@qaserver120 ops2]#cd /data/mysql/ops2
[root@qaserver120 ops2]# ll
total 240
-rw-r----- 1 mysql mysql 114688 Dec2 21:17 tt2.ibd
-rw-r----- 1 mysql mysql 114688 Dec2 21:17 tt3.ibd
-rw-r----- 1 mysql mysql 114688 Dec2 21:36 tt7.ibd
[root@qaserver120 ops2]# ll -al
total 244
drwxr-x---2 mysql mysql51 Dec2 21:38 .
drwxr-xr-x 12 mysql mysql4096 Dec2 21:17 ..
-rw-r-----1 mysql mysql 114688 Dec2 21:17 tt2.ibd
-rw-r-----1 mysql mysql 114688 Dec2 21:17 tt3.ibd
-rw-r-----1 mysql mysql 114688 Dec2 21:36 tt7.ibd
[root@qaserver120 ops2]# pwd
/data/mysql/ops2
[root@qaserver120 ops2]# mysql -u'root'-p'fgxkB9;Zq40^MFQUi$PJ'-A
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.Commands end with ; or \g.
Your MySQL connection id is 57
Server version: 8.0.18 MySQL Community Server - GPL
Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql use ops2
Database changed
mysql show tables;
----------------
| Tables_in_ops2 |
----------------
| tt2|
| tt3|
| tt7|
----------------
3 rows in set (0.00 sec)
mysql select * from tt7;
-------------- ------
| x| y|
-------------- ------
| BBBBBB| NULL |
| AAAAAA| NULL |
| BBBBBB| NULL |
| 555555555555 | NULL |
| AAAAAA| NULL |
| BBBBBB| NULL |
| 555555555555 | NULL |
-------------- ------
7 rows in set (0.00 sec)
mysql flush tables tt7for export;
Query OK, 0 rows affected (0.00 sec)
mysql use ops
Database changed
mysql ll
- ;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'll' at line 1
mysql show tables;
---------------
| Tables_in_ops |
---------------
| tt2|
---------------
1 row in set (0.00 sec)
mysql
mysql
mysql alter table tt7 import tablespace;
ERROR 1100 (HY000): Table 'tt7' was not locked with LOCK TABLES
mysql
mysql
mysql use ops2
Database changed
mysql show tables;
----------------
| Tables_in_ops2 |
----------------
| tt2|
| tt3|
| tt7|
----------------
3 rows in set (0.00 sec)
mysql select * from tt7;
-------------- ------
| x| y|
-------------- ------
| BBBBBB| NULL |
| AAAAAA| NULL |
| BBBBBB| NULL |
| 555555555555 | NULL |
| AAAAAA| NULL |
| BBBBBB| NULL |
| 555555555555 | NULL |
-------------- ------
7 rows in set (0.00 sec)
mysql unlock tables;
Query OK, 0 rows affected (0.00 sec)
mysql show create tablett7;
------- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| Table | Create Table|
------- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| tt7| CREATE TABLE `tt7` (
`x` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_as_cs DEFAULT NULL,
`y` int(11) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_as_cs |
------- ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
1 row in set (0.00 sec)
mysql use ops
Database changed
mysql show tables;
---------------
| Tables_in_ops |
---------------
| tt2|
---------------
1 row in set (0.01 sec)
mysqlCREATE TABLE `tt7` (
-`x` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_as_cs DEFAULT NULL,
-`y` int(11) DEFAULT NULL
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_as_cs ;
Query OK, 0 rows affected, 1 warning (0.02 sec)
mysql
mysql
mysql show tables;
---------------
| Tables_in_ops |
---------------
| tt2|
| tt7|
---------------
2 rows in set (0.00 sec)
mysql select * from tt7;
Empty set (0.00 sec)
mysql
mysql alter table tt7discard tablesapce;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'tablesapce' at line 1
mysql alter table tt7discard tablespace;
Query OK, 0 rows affected (0.03 sec)
mysql
mysql
mysql show tables;
---------------
| Tables_in_ops |
---------------
| tt2|
| tt7|
---------------
2 rows in set (0.00 sec)
mysql select * from tt7;
ERROR 1814 (HY000): Tablespace has been discarded for table 'tt7'
mysql
mysql
mysql
mysql show tables;
---------------
| Tables_in_ops |
---------------
| tt2|
| tt7|
---------------
2 rows in set (0.00 sec)
mysql select * from tt7;
ERROR 1814 (HY000): Tablespace has been discarded for table 'tt7'
mysql
mysql
mysql alter table tt7 import tablespace;
ERROR 1812 (HY000): Tablespace is missing for table `ops`.`tt7`.
mysql
mysql
mysql
mysql alter table tt7 import tablespace;
Query OK, 0 rows affected (0.08 sec)
mysql
mysql
mysql select * from tt7;
-------------- ------
| x| y|
-------------- ------
| BBBBBB| NULL |
| AAAAAA| NULL |
| BBBBBB| NULL |
| 555555555555 | NULL |
| AAAAAA| NULL |
| BBBBBB| NULL |
| 555555555555 | NULL |
-------------- ------
7 rows in set (0.00 sec)
mysql SELECT* FROMops2.tt7;
-------------- ------
| x| y|
-------------- ------
| BBBBBB| NULL |
| AAAAAA| NULL |
| BBBBBB| NULL |
| 555555555555 | NULL |
| AAAAAA| NULL |
| BBBBBB| NULL |
| 555555555555 | NULL |
-------------- ------
7 rows in set (0.00 sec)
mysql SELECT* FROMops.tt7;
-------------- ------
| x| y|
-------------- ------
| BBBBBB| NULL |
| AAAAAA| NULL |
| BBBBBB| NULL |
| 555555555555 | NULL |
| AAAAAA| NULL |
| BBBBBB| NULL |
| 555555555555 | NULL |
-------------- ------
7 rows in set (0.00 sec)
mysql
mysql
mysql
mysql unlock tables;
Query OK, 0 rows affected (0.00 sec)
mysql unlock tables;
Query OK, 0 rows affected (0.00 sec)
mysql use ops
Database changed
mysql show tables;
---------------
| Tables_in_ops |
---------------
| tt2|
| tt7|
---------------
2 rows in set (0.00 sec)
mysql
mysql
mysql
mysql use ops2;
Database changed
mysql
mysql
mysql show tables;
----------------
| Tables_in_ops2 |
----------------
| tt2|
| tt3|
| tt7|
----------------
3 rows in set (0.01 sec)
mysql
mysql select * from tt7;
-------------- ------
| x| y|
-------------- ------
| BBBBBB| NULL |
| AAAAAA| NULL |
| BBBBBB| NULL |
| 555555555555 | NULL |
| AAAAAA| NULL |
| BBBBBB| NULL |
| 555555555555 | NULL |
-------------- ------
7 rows in set (0.00 sec)
mysql
mysql use ops;
Database changed
mysql
mysql
mysql select * from tt7;
-------------- ------
| x| y|
-------------- ------
| BBBBBB| NULL |
| AAAAAA| NULL |
| BBBBBB| NULL |
| 555555555555 | NULL |
| AAAAAA| NULL |
| BBBBBB| NULL |
| 555555555555 | NULL |
-------------- ------
7 rows in set (0.00 sec)
MySQL按月自动创建分区表(千万级大表优化) 对用户来说,分区表是一个独立的逻辑表,但是底层由多个物理子表组成,实现分区的代码实际上是通过对一组底层表的对象封装 , 但对SQL层来说是一个完全封装底层的黑盒子 。
MySQL实现分区的方式也意味着索引也是按照分区的子表定义 , 没有全局索引。
分区的意思是指将同一表中不同行的记录分配到不同的物理文件中 ,几个分区就有几个.idb文件 。MySQL数据库的分区是局部分区索引,一个分区中既存了数据,又放了索引 。也就是说,每个区的聚集索引和非聚集索引都放在各自区的(不同的物理文件) 。
1、可以让单表 存储更多的数据。
2、 分区表的数据更容易维护 ,可以通过删除与那些数据有关的分区 , 更容易删除数据,也可以增加新的分区来支持新插入的数据 。另外,还可以对一个独立分区进行优化、检查、修复等操作 。
3、部分查询能够从查询条件确定只落在少数分区上,查询速度会很快。
4、通过跨多个磁盘来分散数据查询,来 获得更大的查询吞吐量。
要使定时事件起作用,MySQL的常量GLOBAL event_scheduler必须为on或者是1 。
1、查看scheduler的当前状态:
2、修改scheduler状态为打开(0:off , 1:on):
3、临时打开定时器(四种方法):
4、永久生效的方法 , 修改配置文件my.cnf
5、临时开启某个事件
6、临时关闭某个事件
【mysql怎么变成大表 mysql将视图变成表】mysql怎么变成大表的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于mysql将视图变成表、mysql怎么变成大表的信息别忘了在本站进行查找喔 。
推荐阅读
- 视频号信息怎么设置免打扰,视频号怎么设置有人不可见
- mysql查询慢是为什么 怎么改善 mysql数据库查询没问题写入慢
- python分布式爬虫入门,分布式网络爬虫
- mysql复制数据库的结构与数据 什么是mysql基于行的复制
- vivo属于安卓软件吗,vivo属于安卓软件吗知乎
- go语言设计与演化总结 go语言发展
- 戴尔笔记本怎么设置u盘启动,戴尔笔记本怎么设置u盘启动图解
- 如何禁用excel的宏,禁用宏则关闭excel文件
- 公益sap,公益组织 大熊猫