简单mysql优化_mysql常见语句的简单优化策略

常见sql优化方法

(1)优化insert语句

大批量插入数据:

对于Myisam类型的表,可以通过以下方式快速的导入大量的数据。

ALTER TABLE tblname DISABLE KEYS; loading the data

ALTER TABLE tblname ENABLE KEYS;

这两个命令用来打开或者关闭Myisam表非唯一索引的更新。在导入大量的数据到一个非空的Myisam表时,通过设置这两个命令,可以提高导入的效率。对于导入大量数据到一个空的Myisam表,默认就是先导入数据然后才创建索引的,所以不用进行设置。

2.而对于Innodb类型的表,这种方式并不能提高导入数据的效率。对于Innodb

类型的表,我们有以下几种方式可以提高导入的效率:

a.因为Innodb类型的表是按照主键的顺序保存的,所以将导入的数据按照主键的顺序排列,可以有效的提高导入数据的效率。如果Innodb表没有主键,那么系统会默认创建一个内部列作为主键,所以如果可以给表创建一个主键,将可以利用这个优势提高导入数据的效率。

b.在导入数据前执行

SET UNIQUE_CHECKS=0 ,关闭唯一性校验,在导入结束后执行

SET UNIQUE_CHECKS=1,恢复唯一性校验,可以提高导入的效率。

c.如果应用使用自动提交的方式,建议在导入前执行SET AUTOCOMMIT=0,关闭自动提交,导入结束后再执行SET AUTOCOMMIT=1,打开自动提交,也可以提高导入的效率。

11.4.2优化insert语句:

3. 如果你同时从同一客户插入很多行,使用多个值表的

INSERT语句。这比使用分开insert into tablename

values(1,2),(1,3),(1,4)

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

刚好相反,在所有其他用户对表的读写完后才进行插入;

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

6.如果进行批量插入,可以增加bulk_insert_buffer_size变量值的方法来提高速

度,但是,这只能对myisam表使用;

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

8.根据应用情况使用replace语句代替insert;

9.根据应用情况使用ignore关键字忽略重复记录

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/551197.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mysql 字符串函数大全_mysql 字符串函数大全

返回字符串str的最左面字符的ASCII代码值。如果str是空字符串,返回0。如果str是NULL,返回NULL。mysql> select ASCII(2); -> 50mysql> select ASCII(2); -> 50mysql> select ASCII(dx); -> 100也可参见ORD()函数。ORD(str)如果字符串s…

ef mysql modelfirst_MySQL –EF edmx(Model First)– Sql Server table

一、mysql environmentWhen we create an new database,first We need draw er diagram for somebody to show your idea,but our company have no goodauthorised tool to design sqlserver ER diagram,so I use mysql graphical tool to design it, after that,you can use m…

db2 联邦 mysql_DB2联邦数据库及配置方法(及联邦密码修改)

如果您需要使用所有不同的数据库,包括选择、插入、更新和删除,就象所有的表都位于单个数据库中那样,那么将获得非常高的工作效率。数据库联邦就是要做到这一点:使所有表看起来象是在同一个数据库中那么,数据库联邦是怎…

apache支持mysql ubuntu_Ubuntu+Apache+PHP+Mysql环境搭建(完整版)

UbuntuApachePHPMysql环境搭建(完整版)一、操作系统Ubuntu 14.04 64位,阿里云服务器二、Apache1、安装Apache,安装命令:sudo apt-get install apache22、环境配置:1)配置文件:路径为/etc/apache2,配置文件是…

mysql t 保存_检查 (调试) - 离线消息保存到 MySQL - 《EMQ X Enterprise v4.1 中文文档》 - 书栈网 · BookStack...

离线消息保存到 MySQL搭建 MySQL 数据库,并设置用户名密码为 root/public,以 MacOS X 为例:$ brew install mysql$ brew services start mysql$ mysql-u root-h localhost-pALTER USERrootlocalhostIDENTIFIED BYpublic;初始化 MySQL 数据库:$ mysql-u r…

管家婆 mysql_管家婆数据库表.doc

管家婆数据库表.doc管家婆数据库表名称 代码 职员信息表 employee 库存商品信息表 Ptype 往来单位 btype 摘要表 Abstract 地区信息表 AreaType 会计科目表 atypecw 仓库信息表 Stock 部门信息表 Department 订单索引表 DlyndxOrder 订单明细表 BakDlyOrder 单据索引表 Dlyndx …

mysql5.7安装教程centos_MySQL5.7版CentOS系统简易安装教程

这一篇教程,我们一起来完成MySQL在CentOS系统中的安装。1、下载MySQL(Community版)RPM安装源。如果没有安装wget,需要先执行命令安装。执行命令:yum -y install wget然后,通过wget下载安装源。例如,下载到“/root/Down…

enum mysql byte_九、臭名昭著的 MySQL ENUM 类型 ( 上 )

MySQL 中,对于那些取值只有两三个,或者五个以内的值,想必,大多数人使用的应该都是 ENUM 类型吧,而剩下的另一部分人,应该都是使用 TINYINT(1) 。 我,就是剩下的那部分人。一方面我真的是太懒&am…

java @valid 密码不一致_一个成熟的Java项目如何优雅地处理异常

(一)概述异常处理是一个系统最重要的环节,当一个项目变得很大的时候,异常处理和日志系统能让你快速定位到问题。对于用户或者接口调用者而言,优雅的异常处理可以让调用者快速知道问题所在。本文将介绍如何优雅地处理异常。(二)使用通用的返回…

spark消费kafka产生数据堆积怎么处理_SparkStreaming读取Kafka的两种方式

本文主要从以下几个方面介绍SparkStreaming读取Kafka的两种方式:一、SparkStreaming简介二、Kafka简介三、Redis简介(可用于保存历史数据或偏移量数据)四、SparkStreaming读取Kafka数据的两种方式 五、演示Demo一、SparkStreaming简介可以参考这篇文章:SparkStreami…

MySQL数据步骤管控_数据管理的发展过程分为哪三个阶段

数据管理的发展过程分为哪三个阶段发布时间:2020-11-12 12:01:00来源:亿速云阅读:124作者:小新这篇文章主要介绍数据管理的发展过程分为哪三个阶段,文中介绍的非常详细,具有一定的参考价值,感兴…

myftpadmin+proftpd+mysql架设ftp服务器_linux下用Proftpd搭建ftp服务器及配置方法

首先proftpd是一个开源软件,其官方地址是http://www.proftpd.org,目前最高版本是:1.3.1(非稳定版),稳定的版本是1.3.0,下载文件为proftpd-1.3.0a.tar.gz我下载的是1.3.0,上传到服务器上后按照常规的方法安装…

mysql设置输出格式_rsyslog 配置mysql输出格式

http://www.rsyslog.com/doc/v8-stable/configuration/modules/ommysql.html文档中:Note rsyslog contains a canned default template to write to the MySQL database. It works on the MonitorWare schema. This template is:$template tpl,”insert into System…

nginx trac mysql svn_apache+mysql+trac+svn

Windows 2008 R2安装ApacheSVNTracMySQL步骤及心得一、软件准备1.Apache_2.2.14-win32-x86-no_ssl.msi2.Setup-Subversion-1.7.1.exe3.TortoiseSVN-1.6.16.215114.Mysql-5.5.28-win32.exehttp://www.doczj.com/doc/3bbc3a4b915f804d2b16c1e7.html Framework V4.06.Python-2.7.6…

python 所有关键字解释_Python关键字详细解释

Python关键字,也被称为保留字。保留字是官方定义的,具有特殊含义的单词。 用户不能使用保留字作为变量、函数、类等自定义的名称。查看当前Python版本保留字的方法。打开cmd,执行python,进入到Python交互模式中然后依次输入下面的…

python字符串操作作业_python 第二天作业

#python 中的循环#先介绍for循环#格式#for 临时变量 in 可迭代对象# 循环体#name neusoft#for a in name :# print(a)# if a s# print(嘿嘿)#循环次数哪里去了?# #这个a是什么鬼? a是临时变量 提前声明 python自动为你创建#range (起始位置&#xff0c…

python字符串迭代_Python字符串迭代/函数

我需要我的“items”变量将每个项目打印到新行上。我总是在“items”中得到总数,在“total”中得到总数。“总计”打印出我想要的结果,但我希望这些项目单独打印。在有什么想法?在def adding_report():user_input input("Report Types …

python 白化_Python新疆某气候要素IDW(反距离权重)插值

1、Rbf插值import numpy as npimport cartopy.crs as ccrsimport cartopy.feature as cfeatfrom cartopy.mpl.gridliner import LONGITUDE_FORMATTER, LATITUDE_FORMATTERfrom cartopy.io.shapereader import Readerimport matplotlib.pyplot as pltimport matplotlib.ticker a…

帆软报表参数传给网络报表_报表开发工具FineReport的使用: 程序网络报表

1定义程序网络报表程序网络报表所在类需要继承com.fr.web.reportlet这个抽象类,并且需要实现createReport(ReportletRequest arg0)这个方法,并返回报表对象。具体代码如下:2//程序网络报表package com.fr.demo; import java.util.Map;impo…

bootstrap 取消_学习写个网站(5)Bootstrap学习2

吃了2天烧烤夜宵&#xff0c;还是得讲点自律。【正文】继续bootstrap&#xff0c;还是菜鸟教程。11. 分页就是还有种就是翻页&#xff0c;12. 标签class"label label-default">默认标签</span>label-primarylabel-success13. 警告就是那种可以取消的消息&am…