| 网管联盟 | 网管论坛 | 网管u家 | 网管博客 | 网管软件 | 网管求职 | 小游戏 | 网管搜索 | 网管原创 | 网管聚合 | 网管读摘 | 网管焦点 | 世界素材 | 会员投稿 | 会员中心 |
![]() |
| Windows Linux Cisco 网络技术 数据库 黑客攻防 DotNet Java PHP 认证 新闻资讯 服务器 存储资讯 网络设备 网管学堂 技术专题 焦点 网吧频道 |
4 加速 INSERT
插入一条记录花费的时间由以下几个因素决定,后面的数字大致表示影响的比例: 网管u家www.bitscn.net
连接:(3)
网管联盟bitsCN@com
发送查询给服务器:(2)
解析查询:(2)
插入记录:(1 x 记录大小)
插入索引:(1 x 索引数量)
网管bitscn_com
关闭:(1)
网管朋友网www_bitscn_net
这里并没有考虑初始化时打开数据表的开销,因为每次运行查询只会做这么一次。
如果是 B-tree 索引的话,随着索引数量的增加,插入记录的速度以 log N 的比例下降。 网管网www_bitscn_com
可以使用以下几种方法来提高插入速度: 网管有家bitscn.net
注意,LOAD DATA INFILE 将数据插入一个空表时,也会做前接优化;主要的不同在于:运行 myisamchk 会分配更多的临时内存用于创建索引,而执行 LOAD DATA INFILE 命令则是让数据库服务器分配内存用于重建索引。从 MySQL 4.0 起,可以运行 ALTER TABLE tbl_name DISABLE KEYS 来代替 myisamchk --keys-used=0 -rq /path/to/db/tbl_name,运行 ALTER TABLE tbl_name ENABLE KEYS 代替 myisamchk -r -q /path/to/db/tbl_name。这么做就可以省去 FLUSH TABLES 步骤。
网管网www.bitscn.com
|
0
|
评论加载中…