1.批量插入数据。
如果有需要插入100000条数据,那么就需要有100000条insert语句,每一句都需要提交到关系引擎那里去解析,优化,然后才能够到达存储引擎做真的插入工作。上述所说的同时插入多条就是一种优化。
2.truncate table
比delete速度要更快一些,但truncate删除后不记录mysql日志,不可以恢复数据
如果没有外键关联,innodb执行truncate是先drop table(原始表),再创建一个跟原始表一样空表,速度要远远快于delete逐条删除行记录。
如果表有外键关联,truncate table将会报错。如果外键指定级联删除(delete cascade),使用delete关联的子表也会会被删除所有表数据。
如果使用innodb_file_per_table参数,truncate table 能重新利用释放的硬盘空间,在InnoDB Plugin中,truncate table为自动回收,如果不是用InnoDB Plugin,那么需要使用optimize table来优化表,释放空间。
truncate table删除表后,optimize table尤其重要,特别是大数据数据库,表空间可以得到释放!
TRUNCATE TABLE 在功能上与不带 WHERE 子句的 DELETE 语句相同:二者均删除表中的全部行。但 TRUNCATE TABLE 比 DELETE 速度快,且使用的系统和事务日志资源少。
DELETE 语句每次删除一行,并在事务日志中为所删除的每行记录一项。TRUNCATE TABLE 通过释放存储表数据所用的数据页来删除数据,并且只在事务日志中记录页的释放。
TRUNCATE TABLE 删除表中的所有行,但表结构及其列、约束、索引等保持不变。新行标识所用的计数值重置为该列的种子。如果想保留标识计数值,请改用 DELETE。
如果要删除表定义及其数据,请使用 DROP TABLE 语句。
auto_increment计数器在truncate table后会重置为0
3.一个大的 DELETE 或 INSERT 操作,要非常小心,因为这两个操作是会锁表的,表一锁住,其他操作就进不来了。因此,我们要交给DBA去拆分,重整数据库策略,比如限制处理1000条。
MySQL官方手 册得知删除数据的速度和创建的索引数量是成正比的。所以在超大型数据库中,删除时处理好索引关系非常重要。推荐的折中方法:在删除数据之前删除这那几个索引,然后删除其中无用 数据,删除完成后重新创建索引。
4.更新多条记录
Update score
SET change_type = CASE id
WHEN 1 THEN 'value1'
WHEN 2 THEN 'value2'
WHEN 3 THEN 'value3'
END
WHERE id IN (1,2,3)
5.REPLACE语句 如果一个表在一个字段上建立了唯一索引,当向这个表中使用已经存在的键值插入一条记录,将会抛出一个主键冲突的错误。如果我们想用新记录的值来覆盖原来的记录值时,就可以使用REPLACE语句。
使用REPLACE插入记录时,如果记录不重复(或往表里插新记录),REPLACE功能与INSERT一样,如果存在重复记录,REPLACE就使用新记录的值来替换原来的记录值。
使用REPLACE的最大好处就是可以将DELETE和INSERT合二为一,形成一个原子操作。这样就可以不必考虑同时使用DELETE和INSERT时添加事务等复杂操作了。
在使用REPLACE时,表中必须有唯一有一个PRIMARY KEY或UNIQUE索引,否则,使用一个REPLACE语句没有意义。
UPDATE在没有匹配记录时什么都不做,而REPLACE在有重复记录时更新,在没有重复记录时插入。
UPDATE可以选择性地更新记录的一部分字段。而REPLACE在发现有重复记录时就将这条记录彻底删除,再插入新的记录。也就是说,将所有的字段都更新了。
相关推荐
MySQL 5.7参考手册详细记录了MySQL 5.7版本至5.7.11版本的所有特性、安装指导、性能优化以及数据库管理的各个方面。该手册是数据库管理员和开发者在使用MySQL数据库系统时的权威参考资料。 ### 标题知识点解析 - *...
### MySQL主从复制部署实施知识点 #### 一、MySQL主从复制概述 MySQL主从复制是一种数据复制技术,它能够实现在多个服务器之间复制数据。通常包括一个主服务器(Master)和一个或多个从服务器(Slave)。在主从复制...
以下将详细解释这些知识点及其应用场景。 1. **查询表名** 使用`SHOW DATABASES;`命令可以列出当前MySQL服务器上的所有数据库。若要切换到特定数据库,可以使用`USE 数据库名;`命令。然后,可以使用`SHOW TABLES;`...
### MySQL学习工具与基础知识 #### 一、MySQL与常见数据库介绍 MySQL是一种广泛使用的开源关系型数据库管理系统(RDBMS),特别适用于Web应用程序。在互联网行业中,MySQL常常作为LAMP堆栈的一部分出现,其中LAMP...
以下是一些关于MySQL文档生成工具及其相关知识点的详细说明: 1. **数据库设计文档**:数据库设计文档是记录数据库结构、关系、约束和逻辑流程的文件,包括表的定义、字段信息、索引、外键关系等。在项目开发中,它...
MySQL表操作知识点 本篇文章主要讲解MySQL表操作的基本知识,涵盖表结构、字段类型、关系模型等方面的内容。 表结构 在MySQL中,一个表对应一个文件,每个文件里存放数据的表结构。表结构可以分为表结构和数据两...
在“PHP+Mysql班费查询...通过这个课程设计,学生不仅能掌握PHP和MySQL的基础知识,还能了解到Web应用开发的实践过程,包括需求分析、数据库设计、编程实现、测试和维护等环节,这对他们的专业技能提升具有重要意义。
以上就是关于“通讯录系统mysql数据库设计”的主要知识点,涵盖了数据表设计、关系模型、字段选择以及性能优化等多个方面。在实际开发过程中,还需结合业务需求和用户体验,进行更细致的规划和调整。
在MySQL数据库管理中,有时我们需要将表的结构信息导出,包括字段名、数据类型、长度、是否可为空、默认值以及备注等属性,以便于文档化或迁移数据。以下是一个详细步骤,指导如何完成这一任务: 1. **确定目标...
本文将深入探讨MySQL数据库的基础知识,尤其是根据提供的标题和描述内容,我们将关注表结构设计和数据库创建。 首先,创建数据库是所有操作的起点。在MySQL中,可以使用`CREATE DATABASE`语句来创建一个新的数据库...
总结来说,基于MySQL数据库的西瓜育种自动化综合管理系统是一款集数据录入、查询、统计和分析于一体的工具,它整合了现代信息技术与西瓜育种的专业知识,大大提升了育种工作的效率和管理水平。对于其他类似的农业...
### MySQL上机考试知识点解析 #### 一、题目背景与要求概述 本次MySQL上机考试主要针对的是在事业编制内的专业技术人员,旨在考察其对于MySQL数据库管理系统的掌握程度。题目包含建表、插入数据以及一些基本操作等...
下面我们将深入探讨相关知识点。 首先,**仪表盘设计**是关键,一个好的仪表盘应该清晰、直观地展示关键性能指标(KPIs)。在这个项目中,自定义功能意味着用户可以根据业务需求选择显示的数据类型、范围以及刻度...
- **存储结构**: 数据库对象(表、索引等)和日志文件应分开存储,以优化性能。 - **备份策略**: 设计合理的备份策略,确保数据的安全性和可用性。 #### 六、数据库建立 本部分涉及数据库的具体实现,包括表结构的...
《代码生成器知识详解》 代码生成器是程序员的得力助手,它能极大地提高软件项目的开发效率,通过自动生成ASP.NET页面及后台代码,基于面向服务的架构(SOA),使得开发工作更加智能化。本篇文章将深入探讨代码生成...
- **知识点**: `mysql_connect()`用于建立非持久连接,可以使用`mysql_close()`关闭连接;而`mysql_pconnect()`则用于建立持久连接,也可以使用`mysql_close()`尝试关闭连接,但在PHP中通常无效。 - **扩展解释**: ...
- **知识点**: MySQL安装后默认创建的用户数量。 - **解析**: MySQL安装后默认会创建一个超级管理员用户(root),用于管理和访问数据库系统。 #### 15. 数组元素的引用 - **知识点**: 对数组元素的正确引用方式。 -...
- **知识点**:Access 2003支持十一种数据类型,包括文本、备注、数字、日期/时间、货币、是/否、OLE对象、超级链接、查阅向导、附件和计算字段。 - **应用场景**:在设计Access数据库时,根据数据的性质选择合适的...
在设计一个基于MySQL数据库的便签应用时,我们需要考虑如何有效地存储和管理用户的各种便签信息,同时满足功能性和创新性的需求。以下是根据标题、描述和部分内容所涉及到的知识点的详细说明: 1. **需求分析**: ...
3,如果对这些操作不熟悉的,请先学习一下相关基础知识(springboot开发环境搭建,VUE开发环境搭建) 【备注】 主要针对计算机相关专业的正在做毕设的学生和需要项目实战的Java学习者。 【特别强调】 1、csdn上资源...