社区
MySQL
帖子详情
mysql innodb表的效率问题
mynameiswf
2007-12-18 12:36:32
我有个innodb表,大约10个字段,其中6个有建索引,还有4个外键关系。在插入25w条记录的时候,1个小时没完成。
对于innodb类型的数据表,对于大数据量情况下,在配置上大家有什么建议?
...全文
152
4
打赏
收藏
mysql innodb表的效率问题
我有个innodb表,大约10个字段,其中6个有建索引,还有4个外键关系。在插入25w条记录的时候,1个小时没完成。 对于innodb类型的数据表,对于大数据量情况下,在配置上大家有什么建议?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
懒得去死
2007-12-18
打赏
举报
回复
大数据量的插入
之前先
alter table tablename disable keys;
插入。
而且用MYSQL的批量插入语法。
insert into tablename values(),...,();
完了后
alter table tablename enable keys;
mynameiswf
2007-12-18
打赏
举报
回复
25w条数据记录的总共大小大约是120m左右。
mynameiswf
2007-12-18
打赏
举报
回复
有人做的测试:
1. time=4706s, avs=2124行/s
--- innodb_buffer_pool_size = 512M,thread_concurrency = 2
--- 观测 idb 文件的生成情况,越往后长得越慢,前一个G和最后一个G的增长速度相差 8 倍以上
2. time=3317s, avs=3014行/s
--- innodb_buffer_pool_size = 3*512M,thread_concurrency = 2
--- innodb_buffer_pool_size 大小对速度有相当的影响
3. time=3101s, avs=3224行/s
--- innodb_buffer_pool_size = 3*512M,thread_concurrency = 2, unique key -> normal key
--- unique key 对速度有一定的影响,小于 10%
4. time=954s, avs=10482行/s
--- 从测试 3 得出的表,改变表类型 alter table tl_test_log ENGINE=MyISAM
--- key_buffer_size = 192M
--- InnoDB 的 alter table 效率,本次测试中三倍落后于 MyISAM
5. time=554s, avs=5392行/s, count(id)=2,933,380
--- 测试条件同 2,行数将近原 10M 的 1/3
--- 保证索引数据能完全存放在内存中:index length: 3.8G/3=1.3G < innodb_buffer_pool_size = 3*512M
--- 前 3M 行记录的插入速度,相对于测试 2 有 78% 的效率提升,显然是之后的插入速度降低拖累了测试 2 的总体成绩
6. time=238s, avs=12325行/s, count(id)=2,933,380
--- 测试条件同 4,行数将近原 10M 的 1/3
--- 前 3M 行记录的插入速度,相对于测试 4 有 17% 的效率提升,显然是之后的插入速度降低拖累了测试 4 的总体成绩
--- 对比测试 5,可知之后的插入速度降低幅度,InnoDB >> MyISAM
--- 动态察看文件生成大小的变化幅度,比如每次增长的时间间隔,可以有更直观的了解
只是修改索引,效果不会很明显,因为最后实际你还是要把索引加上,加索引在大数据量情况下一样很花时间。我们更看重的是完整过程所花时间。
yangxiao_jiang
2007-12-18
打赏
举报
回复
楼上的意思就是在插入的时候先把keys失效,你也可以把索引删除,插入完成后在创建。
深入理解
MySQL
InnoDB
中的B+索引机制
InnoDB
中的索引是提高数据检索
效率
的关键。本文介绍了三种主要索引类型: 聚簇索引:基于主键排序存储完整的用户记录,适合快速主键查询和范围查询。 二级索引:基于非主键列排序,提升非主键查询性能,但需要回
表
...
Mysql
InnoDB
引擎 的hash索引
InnoDB
自适应哈希索引是一种特殊的哈希索引,它用于存储
InnoDB
表
的主键和唯一索引。这个哈希索引的作用是减少查询时的磁盘 I/O 操作,提高查询
效率
。查一下
mysql
官方文档:...
InnoDB
基础篇(3)-
InnoDB
表
的创建与基本操作
本文介绍了如何创建
MySQL
中的
InnoDB
表
,并且展示了一些基本的操作,如插入、查询、更新和删除数据。同时也提到了如何给
表
中的列添加索引以提高查询
效率
。
InnoDB
是
MySQL
中一个强大的存储引擎,它支持事务,具有高性能...
MySQL
使用
innodb
引擎的查询优化
MySQL
使用
innodb
引擎的查询优化,filesort的单路排序和双路排序介绍,索引的介绍和使用以及B+树的介绍
MySQL
InnoDB
教程:深入理解文件结构与优化手段
本文围绕
MySQL
InnoDB
展开全面介绍。先阐述其文件结构,涵盖系统
表
空间、独立
表
空间及日志文件等,说明各部分功能与作用。接着深入剖析工作原理,包含事务处理机制、锁机制、MVCC 及崩溃恢复等内容。随后从硬件、...
MySQL
57,064
社区成员
56,760
社区内容
发帖
与我相关
我的任务
MySQL
MySQL相关内容讨论专区
复制链接
扫一扫
分享
社区描述
MySQL相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章