千家信息网

mysql 应该如何优化 insert 性能

发表于:2024-11-12 作者:千家信息网编辑
千家信息网最后更新 2024年11月12日,本文主要给大家介绍mysql 应该如何优化 insert 性能 ,希望可以给大家补充和更新些知识,如有其它问题需要了解的可以持续在行业资讯里面关注我的更新文章的。mysql 的 insert 语句语法
千家信息网最后更新 2024年11月12日mysql 应该如何优化 insert 性能

本文主要给大家介绍mysql 应该如何优化 insert 性能 ,希望可以给大家补充和更新些知识,如有其它问题需要了解的可以持续在行业资讯里面关注我的更新文章的。

mysql 的 insert 语句语法

insert into `table`(`field1`,`field2`) values('value1','value2');

提高insert 性能的方法
1.一条sql语句插入多条数据

INSERT INTO `insert_table` (`uid`, `content`, `type`) VALUES ('userid_0', 'content_0', 0);INSERT INTO `insert_table` (`uid`, `content`, `type`) VALUES ('userid_1', 'content_1', 1);

可以写成

INSERT INTO `insert_table` (`uid`, `content`, `type`) VALUES ('userid_0', 'content_0', 0), ('userid_1', 'content_1', 1);

2.使用事务

START TRANSACTION;INSERT INTO `insert_table` (`uid`, `content`, `type`) VALUES ('userid_0', 'content_0', 0);INSERT INTO `insert_table` (`uid`, `content`, `type`) VALUES ('userid_1', 'content_1', 1);...COMMIT;

注意
1.sql语句长度有限制,合并sql语句时要注意。长度限制可以通过max_allowed_packet配置项修改,默认为1M。
2.事务太大会影响执行效率,mysql有innodb_log_buffer_size配置项,超过这个值会使用磁盘数据,影响执行效率。

关于事务的配置项说明:
innodb_buffer_pool_size

如 果用Innodb,那么这是一个重要变量。相对于MyISAM来说,Innodb对于buffer size更敏感。MySIAM可能对于大数据量使用默认的key_buffer_size也还好,但Innodb在大数据量时用默认值就感觉在爬了。 Innodb的缓冲池会缓存数据和索引,所以不需要给系统的缓存留空间,如果只用Innodb,可以把这个值设为内存的70%-80%。和 key_buffer相同,如果数据量比较小也不怎么增加,那么不要把这个值设太高也可以提高内存的使用率。
innodb_additional_pool_size
这个的效果不是很明显,至少是当操作系统能合理分配内存时。但你可能仍需要设成20M或更多一点以看Innodb会分配多少内存做其他用途。
innodb_log_file_size
对于写很多尤其是大数据量时非常重要。要注意,大的文件提供更高的性能,但数据库恢复时会用更多的时间。我一般用64M-512M,具体取决于云服务器的空间。
innodb_log_buffer_size
默认值对于多数中等写操作和事务短的运用都是可以的。如 果经常做更新或者使用了很多blob数据,应该增大这个值。但太大了也是浪费内存,因为1秒钟总会 flush(这个词的中文怎么说呢?)一次,所以不需要设到超过1秒的需求。8M-16M一般应该够了。小的运用可以设更小一点。
innodb_flush_log_at_trx_commit
抱怨Innodb比MyISAM慢 100倍?那么你大概是忘了调整这个值。默认值1的意思是每一次事务提交或事务外的指令都需要把日志写入(flush)硬盘,这是很费时的。特别是使用电 池供电缓存(Battery backed up cache)时。设成2对于很多运用,特别是从MyISAM表转过来的是可以的,它的意思是不写入硬盘而是写入系统缓存。日志仍然会每秒flush到硬 盘,所以你一般不会丢失超过1-2秒的更新。设成0会更快一点,但安全方面比较差,即使MySQL挂了也可能会丢失事务的数据。而值2只会在整个操作系统 挂了时才可能丢数据。
本篇讲解了关于mysql 优化 insert 性能 的相关介绍,更多先关内容请关注。

相关推荐:

如何使用php 常用自定义方法

如何通过php 使用异或(XOR)加密/解密文件

通过php 如何获取一个变量的名字

以上就是关于mysql 优化 insert 性能 的相关介绍的详细内容,更多请关注其它相关文章!

数据 事务 性能 内存 更多 系统 缓存 语句 更新 配置 重要 操作系统 内容 变量 意思 效率 文件 文章 方法 日志 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 常州现代软件开发 网络安全各级人员要求 七日杀可以从别的服务器带物资吗 成都云之路网络技术有限公司 沈阳尖峰软件开发 江苏华讯网络技术有限公司 获得三级数据库技术的条件 监理网络安全 应用新名词和网络技术 众创众惠互联网科技有限公司 软件开发 36岁 转行 wamp 服务器 支持网络技术工程师岗位职责 苏州企业软件开发平台 吉林网络技术分类代理商 事业单位网络安全常识 盗贼之海定制服务器怎么买 农业银行软件开发离职率 网络技术运营兼职协议 网络安全社会影响力 电子商务与网络技术可以报二建吗 联盟手游怎么转服务器 笔记本老是显示网络安全 网络技术公司的企业想法描述 软件开发属于什么合同 城步乡镇网络安全自查报告 山东星际网络技术有限公司 软件开发合同对方不给钱管辖 查询优化的一般原则数据库原理 文本以何种类型存储在数据库
0