导入数据

对于MyISAM存储引擎的表,可以通过以下方式快速地导入大量数据

alter table tbl_name disable keys;              //关闭表非唯一索引的更新

loading the data

alter table tbl_name enable keys;

如果是空表,默认是先导入数据然后才创建索引的,所以不用进行设置。

对于InnoDB类型的表,这种方式并不能提高导入数据的效率,可以有以下几种方式

1.InnoDB类型的表示按照主键的顺序来保存的,所以将导入的数据按照主键的顺序排列,可以有效提高导入数据的效率。

2.在导入数据前执行set unique_checks=0,关闭唯一性校验,结束后执行set unique_checks=1,恢复唯一性校验。

3.在导入数据前执行set autocommit=0,关闭自动提交,结束后执行set autocommit=1,恢复自动提交。

优化insert语句

如果同时从同一客户插入很多行,应尽量使用多个值表的insert语句,比分开执行的单个insert快。

尽量减少额外的排序,通过索引直接返回有序数据。

子查询效率不如关联查询,因为不要在内存中创建临时表来完成这个逻辑上需要两个步骤的查询工作。

例如select * from customer where customer_id not in (select customer_id from payment)

替换为select * from customer a left join payment b on a.customer_id=b.customer_id where b.customer_id is null

正则表达式:

  select first_name, email from customer where email regexp "@163[,.]com$"

常用SQL的优化的更多相关文章

  1. php面试专题---MySQL常用SQL语句优化

    php面试专题---MySQL常用SQL语句优化 一.总结 一句话总结: 原理,万变不离其宗:其实SQL语句优化的过程中,无非就是对mysql的执行计划理解,以及B+树索引的理解,其实只要我们理解执行 ...

  2. (4)MySQL进阶篇SQL优化(常用SQL的优化)

    1.概述 前面我们介绍了MySQL中怎么样通过索引来优化查询.日常开发中,除了使用查询外,我们还会使用一些其他的常用SQL,比如 INSERT.GROUP BY等.对于这些SQL语句,我们该怎么样进行 ...

  3. MySQL常用SQL语句优化

    推荐阅读这篇博文,索引说的非常详细到位:http://blog.linezing.com/?p=798#nav-3-2 在数据库日常维护中,最常做的事情就是SQL语句优化,因为这个才是影响性能的最主要 ...

  4. [MySQL] 常用SQL的优化--18.4

    这里介绍下,Insert.Group By等SQL语句的优化方法: 1.大批量数据插入 当load命令导入数据的时候,可以进行适当的设置提高导入速度. 1.1 对于MyISAM表,可以先禁用非唯一索引 ...

  5. 常用SQL语句优化技巧

    除了建立索引之外,保持良好的SQL语句编写习惯将会降低SQL性能问题发生. ①通过变量的方式来设置参数 好:stringsql = "select * from people p where ...

  6. MySQL基础操作&&常用的SQL技巧&&SQL语句优化

    基础操作     一:MySQL基础操作         1:MySQL表复制             复制表结构 + 复制表数据             create table t3 like t ...

  7. SQL语句优化 (二) (53)

    接上一部分 (4)如果不是索引列的第一部分,如下例子:可见虽然在money上面建有复合索引,但是由于money不是索引的第一列,那么在查询中这个索引也不会被MySQL采用. mysql> exp ...

  8. 数据库性能优化常用sql脚本总结

    最近闲来无事,正好抽出时间,来总结总结 sql性能优化方面的一下小技巧,小工具.虽然都是些很杂的东西,但是我个人觉得,如果真的清楚了里面的一下指标,或许真的能抵半个DBA. 有些时候,找不到DBA或者 ...

  9. ORACLE常用SQL优化hint语句

    在SQL语句优化过程中,我们经常会用到hint,现总结一下在SQL优化过程中常见Oracle HINT的用法: 1. /*+ALL_ROWS*/ 表明对语句块选择基于开销的优化方法,并获得最佳吞吐量, ...

随机推荐

  1. 227. Basic Calculator

    1. 问题描述 Implement a basic calculator to evaluate a simple expression string. The expression string c ...

  2. oracle 11g常用命令

    1.监听启动监听lsnrctl start停止监听 lsnrctl stop 查看监听状态 lsnrctl status 2.启动用oracle用户进入su - oracle运行sqlplus命令,进 ...

  3. android入门——Activity(1)

    结构图 mainfests文件夹下面有一个AndroidMainfest.xml文件,类似web开发中的web.xml文件负责整个项目的配置,每当我们新建一个activity,都要在这个文件中进行配置 ...

  4. Openv2.1基本数据类型

    1.Point_ template<typename _Tp> class Point_ {_Tp x, y;} 可使用的运算: pt1 = pt2 + pt3; pt1 = pt2 - ...

  5. Excel文件转换为html静态网页

    Excel文件转换为html静态网页:右键另存为:

  6. Svn入门

    1.建立svn仓库 ›    命令svnadmin create 仓库名称,如:进入命令行窗口,切换到Svn安装目录下,输入如下命令:svnadmin create F:\software\repos ...

  7. netty中实现客户端首次连接绑定并非每次read检查的方法

    需求场景 客户端第一次连接时,将客户端存起来 重写 ChannelHandlerAdapter 的 handlerAdded 方法

  8. python一些模块的exe安装包在windows的64位系统里识别不到已安装Python目录的解决方法

    在windows里安装python一些模块时候,有时候源码安装比较困难,pip install也各种报错,这时候最喜欢用别人编译好的exe或者whl文件来安装,但是在windows的64位系统里,如果 ...

  9. 使用VisualVM分析tomcat运行状况(1)

    VisualVM是一款java程序性能分析与调优工具,而且还是jdk中自带的工具之一. tomcat也是一个java程序,自然也可以用它来进行监控.不过这里还是会有些问题,tomcat有两种常用的期待 ...

  10. lombk在IDEA中报ClassNotFoundException错误

    今天接手了一个项目,用到了lombk,第一次用到,做为纯JAVA来说,确实不错. 不过在使用中碰到了一个问题,就是在IDEA中,可以在结构中看到getter和setter等都已经正确的生成了,但是运行 ...