威尼斯www.9778.com-威尼斯正版官方网站

【mysql 性能优化篇】优化数据库结构

日期:2020-01-23编辑作者:数据库

删除数据

SQL>delete from 表名 where 条件;SQL>commit;(确认删除了就提交,别人才能看到该表的数据,也才能操作)

delete from empn where id=3 or id=2;

 图片 1

分析表语句:

增加(插入)数据

SQL>insert into 表名 values(值1,值2 /*根据表中的字段顺序和字段类型相应填写*/);SQL>commit; (提交,提交了别的人才看看到这个数据)SQL>insert into 表名 value(值1,NULL(可以允许为空的字段才行)/*根据表中的字段顺序和字段类型相应填写*/);SQL>commit; SQL>insert into 表名(字段名1,字段名3) values(值1,值3)/*选择部分字段插入数据 没有选择的字段对应的值是NULL值。*//*这种语法必须包含非空字段*/

开启索引

演示:

(例如QQ用户的建立,数据库对应的就是增加数据)

(1)先建立一张表:

create table empn(id number, primary key, name varchar2(30),salary number);

图片 2

加上primary  key  之后,ID必填,且不会重复:

desc empn;

图片 3

没有提交,自己可以看到,但是别的终端不能再操作,会锁死,直到使用的人提交(或者撤销操作rollback了)为止。

SQL>commit;Commit complete.

 

(2)允许为空的字段可以填NULL:

insert into empn values(2, NULL, 2345678);

 图片 4

 

(3)选择部分字段插入数据:

insert into empn(id, name) values(3,'Tom');

图片 5

当需要批量导入数据时,如果能有load data infile 批量导入,就尽量使用。因为 load data infile 语句 导入数据比insert 语句快。

更新数据

SQL>update from 表名 set 字段名=值,字段名2=‘值2’ where 条件SQL>commit;(或者rollback,回退,撤销操作)

 

4.3、使用批量插入。

set aotucommit=1;
CHECK TABLE t_order_info

方法3:
增加冗余字段
合理加入冗余字段可以增加查询的速度。从数据库性能来看,为了提高查询速度而增加少量的冗余 大部分是可以接受的。是否增加冗余提高数据库性能,这要根据实际需求综合分析。

分析表 :主要是分析关键字的分布
检查表:主要是检查表是否存在错误、
优化表:主要是消除删除、更新造成的空间浪费。

开启唯一性检查语句

4.1 禁止索引
插入记录时,mysql会根据表的索引对插入的记录建立索引。如果插入大量数据,建立索引会降低插入记录的速度,为了解决这种问题,可以在插入记录之前,仅用索引,数据插入完毕后再开启索引。

OPTIMIZE TABLE t_user_info 
set unique_checks=0;
alter table table_name disable keys
alter table table_name enable keys
set foreign_key_checks=0;

4.2、禁止唯一性

检查表语句:

插入多条记录时,可以使用一条 insert 语句插入一条记录,也可以使用一条insert语句插入多条。后者的速度比前者的速度要快。

ANALYZE TABLE t_order_info

Table   Op  Msg_type    Msg_text
cgjr.t_order_info   analyze status  OK

方法4:
优化插入记录的速度

恢复自动提交

set autocommit=0;

禁用外键检查语句

方法1:
将字段很多的表分解为多个表。
通过这种分解,可以提高表的查询效率。对于字段很多,且有些字段使用不频繁的表,可以通过这种分解的方式优化数据库的性能。

优化表:

4.4、使用load data infile 批量导入

对于经常需要联合查询的表,可以建立中间表 提高查询效率。通过建立中间表,把需要经常联合查询的数据插入到中间表,然后将原来的联合查询改为对中间表的查询,以此来提高查询效率。

禁止唯一性检查语句

方法5:
分析表、检查表、优化表

set unique_checks=1;

恢复对外键的检查语句

禁止自动提交

插入数据时,mysql会对插入的记录进行唯一性校验,这种唯一性校验也会降低插入记录的速度,为了降低这种情况对查询速度的影响,我们先禁止唯一性检查。

禁止索引

set foreign_key_checks=1;

方法2:
增加中间表

本文由威尼斯www.9778.com发布于数据库,转载请注明出处:【mysql 性能优化篇】优化数据库结构

关键词:

Oracle行级锁的特殊用法简析威尼斯正版官方网站

威尼斯正版官方网站,Oracle有许多的锁,各种锁的效用是不一样的。下面重点介绍Oracle行级锁,Oracle行级锁只对用户...

详细>>

威尼斯正版官方网站oracle 删除重复数据

重复的数据可能有这样两种情况,第一种:表中只有某些字段一样,第二种是两行记录完全一样。 一、对于部分字段重...

详细>>

oracle执行cmd的实现方法

只是有二个精简的施行cmd命令方法: SQL host net user User accounts for 装了贰个oracledb11g,于是想试一下网络流传的在sqlp...

详细>>

PLSQL Developer登录的默认密码介绍

Oracle 9i默认的用户 安装ORACLE12C时,若没有为下列用户重设密码,则其默认密码如下: 欢迎和大家交流技术相关问题:...

详细>>