• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase
您的位置:首页 > 数据库 >Mysql > MYSQL之插入极限分析

MYSQL之插入极限分析

作者:匿名 字体:[增加 减小] 来源:互联网 时间:2018-12-05

匿名通过本文主要向大家介绍了插入等相关知识,希望本文的分享对您有所帮助

MYSQL之插入极限分析,需要的朋友可以参考下

1、如果同时从同一个客户端插入很多行,使用含多个 VALUE的INSERT语句同时插入几行。这比使用单行INSERT语句快(在某些情况下快几倍)。如果你正向一个非空表添加数据,可以调节 bulk_insert_buffer_size变量,使数据插入更快。参见5.3.3 节,“服务器系统变量”。

2、如果你从不同的客户端插入很多行,能通过INSERT DELAYED语句加快速度。参见13.2.4 节,“INSERT语法”。

3、用MyISAM,如果在表中没有删除的行,能在SELECT语句正在运行的同时插入行。

4、当从一个文本文件装载一个表时,使用LOAD DATA INFILE。这通常比使用很多INSERT语句快20倍。参见13.2.5 节,“LOAD DATA INFILE语法”。

5、当表有很多索引时,有可能要多做些工作使得LOAD DATA INFILE更快些。使用下列过程:

1). 有选择地用CREATE TABLE创建表。
2). 执行FLUSH TABLES语句或命令mysqladmin flush-tables。
3). 使用myisamchk --keys-used=0 -rq /path/to/db/tbl_name。这将从表中取消所有索引的使用。
4). 用LOAD DATA INFILE把数据插入到表中,因为不更新任何索引,因此很快。
5). 如果只想在以后读取表,使用myisampack压缩它。参见15.1.3.3 节,“压缩表特性”。
6). 用myisamchk -r -q /path/to/db/tbl_name重新创建索引。这将在写入磁盘前在内存中创建索引树,并且它更快,因为避免了大量磁盘搜索。结果索引树也被完美地平衡。
7). 执行FLUSH TABLES语句或mysqladmin flush-tables命令。

6、锁定表可以加速用多个语句执行的INSERT操作:

* LOCK TABLES a WRITE;
* INSERT INTO a VALUES (1,23),(2,34),(4,33);
* INSERT INTO a VALUES (8,26),(6,29);
* UNLOCK TABLES;

这样性能会提高,因为索引缓存区仅在所有INSERT语句完成后刷新到磁盘上一次。一般有多少INSERT语句即有多少索引缓存区刷新。如果能用一个语句插入所有的行,就不需要锁定。

对于事务表,应使用BEGIN和COMMIT代替LOCK TABLES来加快插入。
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

相关文章

  • 2018-12-05Oracle 11g 触发器新增功能
  • 2018-12-05SQL 特殊语句(学习笔记)
  • 2018-12-05SQL学习笔记五去重,给新加字段赋值的方法
  • 2018-12-05sql语句 插入语句
  • 2018-12-05几个简单的基本的sql语句
  • 2018-12-05mysql子查询是什么?mysql数据库子查询实际使用示例
  • 2017-05-11Mysql数据库锁定机制详细介绍
  • 2018-12-05SQL Server 7.0 入门(八)
  • 2017-05-11mysql 新增、删除用户和权限分配
  • 2017-05-11MySQL数据库备份和还原的常用命令小结

文章分类

  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase

最近更新的内容

    • pymysql 操作数据库
    • 在客户端配置TNS测试报错ORA-12170:TNS:连接超时
    • MYSQL 数据库命名与设计规范
    • SQL 经典语句
    • MySql中表的删除操作
    • Mysql数据控制语言
    • 提高MySQL数据库的安全性(三)
    • mysql SKIP-NAME-RESOLVE 错误的使用时机造成用户权限
    • Mysql之库表操作的实例代码
    • sqlserver中在指定数据库的所有表的所有列中搜索给定的值

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有