MySQL高级-SQL优化-insert优化-批量插入-手动提交事务-主键顺序插入

文章目录

  • 1、批量插入
    • 1.1、大批量插入数据
    • 1.2、启动Linux中的mysql服务
    • 1.3、客户端连接到mysql数据库,加上参数 --local-infile
    • 1.4、查询当前会话中 local_infile 系统变量的值。
    • 1.5、开启从本地文件加载数据到服务器的功能
    • 1.6、创建表 tb_user 结构
    • 1.7、上传文件到 /root
    • 1.8、查看 是否 上传成功
    • 1.9、查看 load_user_100w_sort.sql 文件前十行数据
    • 1.10、执行load指令将准备好的数据,加载到表结构中
  • 2、手动提交事务
  • 3、主键顺序插入

1、批量插入

insert into tb_test values(1,'Tom'),(2,'Cat'),(3,'Jerry');

1.1、大批量插入数据

在这里插入图片描述

如果一次性需要插入大批量数据,使用insert语句插入性能较低,此时可以使用MySQL数据库提供的load指令进行插入。

1.2、启动Linux中的mysql服务

[root@localhost ~]# ps -ef | grep mysql
root       4013   2155  0 19:14 pts/0    00:00:00 grep --color=auto mysql
[root@localhost ~]# systemctl start mysqld
[root@localhost ~]# ps -ef | grep mysql
mysql      4054      1 24 19:15 ?        00:00:01 /usr/sbin/mysqld
root       4112   2155  0 19:15 pts/0    00:00:00 grep --color=auto mysql
[root@localhost ~]# 

1.3、客户端连接到mysql数据库,加上参数 --local-infile

[root@localhost ~]# mysql --local-infile -uroot -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 8.0.30 MySQL Community Server - GPLCopyright (c) 2000, 2022, Oracle and/or its affiliates.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> 

1.4、查询当前会话中 local_infile 系统变量的值。

mysql> create database atguigu;
Query OK, 1 row affected (0.01 sec)mysql> select @@local_infile;
+----------------+
| @@local_infile |
+----------------+
|              0 |
+----------------+
1 row in set (0.00 sec)mysql>

1.5、开启从本地文件加载数据到服务器的功能

mysql> set global local_infile=1;
Query OK, 0 rows affected (0.00 sec)mysql> select @@local_infile;
+----------------+
| @@local_infile |
+----------------+
|              1 |
+----------------+
1 row in set (0.00 sec)mysql>

1.6、创建表 tb_user 结构

mysql> use atguigu;
Database changed
mysql> CREATE TABLE `tb_user` (->   `id` INT(11) NOT NULL AUTO_INCREMENT,->   `username` VARCHAR(50) NOT NULL,->   `password` VARCHAR(50) NOT NULL,->   `name` VARCHAR(20) NOT NULL,->   `birthday` DATE DEFAULT NULL,->   `sex` CHAR(1) DEFAULT NULL,->   PRIMARY KEY (`id`),->   UNIQUE KEY `unique_user_username` (`username`)-> ) ENGINE=INNODB DEFAULT CHARSET=utf8 ;
Query OK, 0 rows affected, 2 warnings (0.06 sec)mysql> show tables;
+-------------------+
| Tables_in_atguigu |
+-------------------+
| tb_user           |
+-------------------+
1 row in set (0.00 sec)mysql>

1.7、上传文件到 /root

在这里插入图片描述

1.8、查看 是否 上传成功

[root@localhost ~]# ll
总用量 56504
-rw-------. 1 root root     1533 124 2023 anaconda-ks.cfg
-rw-r--r--. 1 root root      191 625 13:29 dump6379.rdb
-rw-r--r--. 1 root root      191 625 13:31 dump6380.rdb
-rw-r--r--. 1 root root      191 625 13:32 dump6381.rdb
-rw-r--r--. 1 root root      583 624 11:13 dump.rdb
-rw-r--r--. 1 root root     1564 124 2023 initial-setup-ks.cfg
-rw-r--r--. 1 root root 57650380 222 2022 load_user_100w_sort.sql
drwxr-xr-x. 3 root root       18 18 18:11 minio
-rw-r--r--. 1 root root      141 625 17:00 nodes-6379.conf
-rw-------. 1 root root   178567 63 13:50 nohup.out
drwxr-xr-x. 2 root root        6 124 2023 公共
drwxr-xr-x. 2 root root        6 124 2023 模板
drwxr-xr-x. 2 root root        6 124 2023 视频
drwxr-xr-x. 2 root root        6 124 2023 图片
drwxr-xr-x. 2 root root        6 124 2023 文档
drwxr-xr-x. 2 root root        6 124 2023 下载
drwxr-xr-x. 2 root root        6 124 2023 音乐
drwxr-xr-x. 2 root root        6 124 2023 桌面
[root@localhost ~]# 

在这里插入图片描述

1.9、查看 load_user_100w_sort.sql 文件前十行数据

[root@localhost ~]# head load_user_100w_sort.sql 
1,jdTmmKQlwu1,jdTmmKQlwu,jdTmmKQlwu,2020-10-13,1
2,BTJOeWjRiw2,BTJOeWjRiw,BTJOeWjRiw,2020-6-12,2
3,waQTJIIlHI3,waQTJIIlHI,waQTJIIlHI,2020-6-2,0
4,XmeFHwozIo4,XmeFHwozIo,XmeFHwozIo,2020-1-11,1
5,xRrvQSHcZn5,xRrvQSHcZn,xRrvQSHcZn,2020-10-18,2
6,gTDfGFNLEj6,gTDfGFNLEj,gTDfGFNLEj,2020-1-13,0
7,nBETIlVCle7,nBETIlVCle,nBETIlVCle,2020-9-27,1
8,vmePKKZjJU8,vmePKKZjJU,vmePKKZjJU,2020-10-20,2
9,pWjaLhJVaB9,pWjaLhJVaB,pWjaLhJVaB,2020-5-7,0
10,zimgGFPEQe10,zimgGFPEQe,zimgGFPEQe,2020-8-1,1
[root@localhost ~]# 

1.10、执行load指令将准备好的数据,加载到表结构中

mysql> load data local infile '/root/load_user_100w_sort.sql' into table tb_user fields terminated by ',' lines terminated by '\n';
Query OK, 1000000 rows affected (21.47 sec)
Records: 1000000  Deleted: 0  Skipped: 0  Warnings: 0mysql> select count(*) from tb_user;
+----------+
| count(*) |
+----------+
|  1000000 |
+----------+
1 row in set (0.10 sec)mysql> 

2、手动提交事务

start transaction;
insert into tb_test values(1,'Tom'),(2,'Cat'),(3,'Jerry');
insert into tb_test values(4,'Tom'),(5,'Cat'),(6,'Jerry');
insert into tb_test values(7,'Tom'),(8,'Cat'),(9,'Jerry');
commit;

3、主键顺序插入

主键乱序插入:8 1 9 21 88 2 4 15 89 5 7 3
主键顺序插入:1 2 3 4 5 6 7 8 9 15 21 88 89
主键顺序插入性能高于乱序插入

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/863329.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mysql_config 命令, 可以查看mysqlclient库的位置在/usr/lib64/mysql下

好吧,其实我是从这里知道了 -l 后面加的库名和so文件这种名不一样,因为库文件实际叫下面这个名(前面有lib)。

MySQL之覆盖索引

什么是覆盖索引? 覆盖索引:查询时使用了索引,且需要返回的列,在改索引中已经全部能找到。 示例:有user表如下: CREATE TABLE user (id bigint(20) NOT NULL AUTO_INCREMENT COMMENT 技术主键,name varch…

Git企业开发---初识Git

顾得泉:个人主页 个人专栏:《Linux操作系统》 《C从入门到精通》 《LeedCode刷题》 键盘敲烂,年薪百万! 引言 不知道大家有没有经历这种困惑,当我们要去交某文档时,总是要进行修改,修改后再交…

Softmax函数的作用

Softmax 函数主要用于多类别分类问题,它将输入的数值转换为概率分布。 具体来说,对于给定的输入向量 x [x_1, x_2,..., x_n] ,Softmax 函数的输出为 y [y_1, y_2,..., y_n] ,其中: 这样,Softmax 函数的输…

人生最有力,最棒的十句话!

人生最有力,最棒的十句话 1、允许一切事发生,所有一切发生的事不是你能阻挡了的,你接受,他也发生,你不接受,他也发生,你还不如坦然面对接受现实。 2、你焦虑的时候千万不要躺着啥也不干&#xf…

全网唯一免费无水印AI视频工具!

最近Morph Studio开始免费公测!支持高清画质,可以上传语音,同步口型,最重要的是生成的视频没有水印! Morph Studio国内就可以访问,可以使用国内邮箱注册(我用的163邮箱),…

Java--回顾方法的调用

1.静态方法与非静态方法 1.当二者皆为静态方式时,可直接类名.方法名调用其方法 2.当调用的方法是静态,被调用的方法为非静态时,调用将会报错 3.出现2情况可通过进行实例化这个类的方式进行调用,如图所示 4.当处于一个类下&#xf…

在IDEA中创建Maven项目

2023版IDEA创建Maven项目(新版) 1.打开IDEA,点击 文件 -> 新建 -> 项目 2.创建Maven项目 3.编写java文件并运行 在src -> java -> 创建一个java文件并运行 如果出现下图 解决办法: 2022版IDEA创建Maven项目&#xf…

判断时间序列中的元素是否为:年初、年末、季初、季末

【小白从小学Python、C、Java】 【考研初试复试毕业设计】 【Python基础AI数据分析】 判断时间序列中的元素是否为: 年初、年末、季初、季末 Series.dt.is_year_start Series.dt.is_year_end Series.dt.is_quarter_start Series.dt.is_quarter_end 选择题 关于以下…

J018_冒泡排序

一、排序过程 如果要对一个数组进行升序排序: 每个轮次两两数字进行比较,如果前面的数字大于后面的数字,则交换两个数字的位置;如果前面的数字小于或等于后面的数字,则这两个数字位置不变。直到把数组中所有数字比较…

Attention (注意力机制)

1. 背景: 字面的意思:给你一些东西(看见一个美女:).....),你会注意什么? 大数据的时代下,有太多的数据,我们又该如何选择重要的数据呢? Attention 诞生了,但是又该如何去做呢(i.e., …

武汉星起航:亚马逊欧洲站潮流指南,满足年轻人选品需求

在充满活力的20-30岁年龄段,年轻人们充满朝气,追求时尚与品质,对生活充满无限期待。亚马逊欧洲站作为全球领先的电商平台,为这一年龄段的人群提供了丰富多样的商品选择。武汉星起航将为您介绍亚马逊欧洲站针对20-30岁人群的选品攻…

myCrayon个人博客项目基于springBoot+Vue全栈开发

目录 项目介绍 简介 项目架构 项目模块组成 数据库设计 项目展示 首页 用户登录与注册 个人信息模块 商城展示 博客模块 博客浏览 博客发布与编辑 博客搜索 社区模块 新闻模块 后台管理系统 部署方式 结语 项目介绍 简介 项目类似于CSDN,支持所…

2024年4家HTTP代理服务商网站最新测评

一、芝麻HTTP芝麻HTTP作为代理服务领域的佼佼者,其HTTP代理服务同样表现出色。凭借海量IP资源和高效稳定的性能,芝麻HTTP为用户提供了卓越的代理服务体验。 特点与优势 ① 海量IP资源:拥有庞大的代理IP池,确保用户能够随时获取到…

Django 自定义标签

1,简单标签 1.1 添加自定义标签函数 Test/app5/templatetags/mytags.py from django import template register template.Library() register.simple_tag() def show_title(value, n):if len(value) > n:return f{value[:n]}...else:return value 1.2 添加视…

Typora failed to export as pdf. undefined

变换版本并没有用,调整图片大小没有用 我看到一个博客后尝试出方案 我的方法 解决:从上图中的A4,变为其他,然后变回A4 然后到处成功,Amazing! 参考: Typora 导出PDF 报错 failed to export…

javaScript利用indexOf()查找字符串的某个字符出现的位置

1 创建字符串 2 利用indexof()查询字符串的字符 3 利用while循环判断indexOf是否等于-1,不等于-1就打印一次并且索引号1去查下一个字符 //创建字符串var str1234567812311231;var indexstr.indexOf(1);//查询该字符while(index !-1)//indexOf()没有查到会返回-1{…

【Linux】使用chrony同步时间

chrony介绍 chrony 是一个开源的网络时间协议 (NTP) 客户端和服务器,旨在保持计算机系统的时间精确同步。它是Linux和其他类Unix系统中广泛使用的工具,特别是在需要高精度时间同步的环境中。chrony 的设计考虑了现代网络的挑战,如不稳定的连…

负载均衡器有什么用?

负载均衡器有什么用? 负载均衡器是一种在多个服务器之间分配网络或应用程序流量的设备或软件应用程序。其主要目的是确保没有一台服务器承担过多的需求,从而提高应用程序的响应速度和可用性。 在计算机发展的早期,负载均衡是一个手动过程。…

AI Prompt 提示词编写公式

自 OpenAI 的 ChatGPT 横空出世至今,各种 AI 大模型百花齐放、百家争鸣。按照用途可以分为两类: 对话类:即通过文字、语音、图片或者视频输入来给模型下达指令,然后模型按照指令以文字的形式将回答输出给用户;生成类&…