Mysql insert语句的优化

1) 如果你同时从同一客户插入很多行,使用多个值表的INSERT语句。这比使用分开INSERT语句快(在一些情况中几倍)。
    Insert into test values(1,2),(1,3),(1,4)…

2) 如果你从不同客户插入很多行,能通过使用INSERT DELAYED语句得到更高的速度。Delayed的含义是让insert 语句马上执行,其实数据都被放在内存的队列中,并没有真正写入磁盘;这比每条语句分别插入要快的多;LOW_PRIORITY刚好相反,在所有其他用户对表的读写完后才进行插入。

3) 将索引文件和数据文件分在不同的磁盘上存放(利用建表中的选项)。

4) 如果进行批量插入,可以增加bulk_insert_buffer_size变量值的方法来提高速度,但是,这只能对myisam表使用。

5) 当从一个文本文件装载一个表时,使用LOAD DATA INFILE。这通常比使用很多INSERT语句快20倍。

6) 根据应用情况使用replace语句代替insert。

7) 根据应用情况使用ignore关键字忽略重复记录。

Mysql insert语句的优化

时间: 2024-10-15 00:37:04

Mysql insert语句的优化的相关文章

使用 xlrd 模块实现对excel 的读取、excel转json 、excel 转 mysql insert 语句

#-*- coding:utf-8 -*- # 处理 excel 中的 area 为 Mysql insert 语句 import xlrd, json, codecs, os # data = xlrd.open_workbook('101.xls') data = xlrd.open_workbook('C:\Users\Administrator\Desktop\changanyiyuan.xlsx') # table = data.sheets()[0] table = data.she

MySQL INSERT语句

insert的语法 INSERT [LOW_PRIORITY | DELAYED | HIGH_PRIORITY] [IGNORE] [INTO] tbl_name [(col_name,...)] VALUES ({expr | DEFAULT},...),(...),... [ ON DUPLICATE KEY UPDATE col_name=expr, ... ] 或: INSERT [LOW_PRIORITY | DELAYED | HIGH_PRIORITY] [IGNORE] [IN

MySQL insert语句锁分析

最近对insert的锁操作比较费解,所以自己动手,一看究竟.主要是通过一下三个sql来看一下执行中的sql的到底使用了什么锁. select * from information_schema.INNODB_TRX\G; //记录当前正在执行的事务,以及事务的一些状态 select * from information_schema.INNODB_LOCKS\G; //包含了InnoDB事务锁的具体情况,包括事务正在申请加的锁和事务加上的锁. select * from information_

MySQL insert语句中中value和values的区别(二)

最近公司事情太忙,作为以一挑十的测试,只能苦逼的累死累活的.好不容易临近上线,可以偷个懒写个文章. 简单的说说如何向表中插入数据: 1.向表中所有的列插入数据(插入多行数据): insert  into  表名 values (列值1,列值2,列值3...列值n), (列值a,列值b,列值c...列值n), ........... (列值A,列值B,列值C...列值N) 2.向表中指定的列插入数据(插入单行数据): insert  into  表名(列名1,列名2,列名3...列名n) valu

通过mysql show语句来优化mysql

1, 查看MySQL服务器配置信息 1.  mysql> show variables; 2, 查看MySQL服务器运行的各种状态值 1.  mysql> show global status; 3, 慢查询 1.  mysql> show variables like ‘%slow%’; 2.  +——————+——-+ 3.  | Variable_name    | Value | 4.  +——————+——-+ 5.  | log_slow_queries | OFF   |

MySQL SQL语句优化的10条建议

1.将经常要用到的字段(比如经常要用这些字段来排序,或者用来做搜索),则最好将这些字段设为索引 2.字段的种类尽可能用int或者tinyint类型.另外字段尽可能用not null 3.当然无可避免某些字段会用到text,varchar等字符类型,最好将text艾段的单独出另外一个表出来(用主键关联好) 4.字段的类型,以及长度,是一个很考究开发者优化功力的一个方面.如果表数据有一定的量了,不妨用PROCEDURE ANALYSE()命令来取得字段的优化建议!(在phpmyadmin里可以在查看

MySql数据库3【优化2】sql语句的优化

1.SELECT语句优化 1).利用LIMIT 1取得唯一行[控制结果集的行数] 有时,当你要查询一张表是,你知道自己只需要看一行.你可能会去的一条十分独特的记录,或者只是刚好检查了任何存在的记录数,他们都满足了你的WHERE子句.在这种情况下,增加一个LIMIT 1会令你的查询更加有效.这样数据库引擎发现只有1后将停止扫描,而不是去扫描整个表或索引. 2).不要使用BY RAND()命令 这是一个令很多新手程序员会掉进去的陷阱.你可能不知不觉中制造了一个可怕的平静.这个陷阱在你是用BY RAN

如何优化MySQL insert性能

对于一些数据量较大的系统,面临的问题除了是查询效率低下,还有一个很重要的问题就是插入时间长.我们就有一个业务系统,每天的数据导入需要4-5个钟.这种费时的操作其实是很有风险的,假设程序出了问题,想重跑操作那是一件痛苦的事情.因此,提高大数据量系统的MySQL insert效率是很有必要的. 经过对MySQL的测试,发现一些可以提高insert效率的方法,供大家参考参考. 1. 一条SQL语句插入多条数据. 常用的插入语句如: INSERT INTO `insert_table` (`dateti

MySQL 查询语句优化思路

query 语句的优化思路和原则主要提现在以下几个方面:1. 优化更需要优化的Query:2. 定位优化对象的性能瓶颈:3. 明确的优化目标:4. 从 Explain 入手:5. 多使用profile6. 永远用小结果集驱动大的结果集:7. 尽可能在索引中完成排序:8. 只取出自己需要的Columns:9. 仅仅使用最有效的过滤条件:10. 尽可能避免复杂的Join和子查询 关于explain 用法:explain select * from tables1 where 1 ... 先看一下在