性能优化

来源:互联网 发布:windows系统占有率 编辑:程序博客网 时间:2024/06/08 05:51

MYSQL性能优化是通过某些有效的方法提高MYsql数据库的性能,

优化查询

优化数据库结构

优化mysql服务器;

查询mysql数据库的性能:
 show status like ‘values’;

其中value参数是常用的几个统计参数,有:
connections: 链接Mysql服务器的次数。
uptime : MYSQL服务器的上线时间。
slow_queries: 慢查询的次数
com_select:查询操作次数
com_insert: 插入操作次数
com_update:更新操作次数
com_delete: 删除操作次数。

优化查询:

分析查询语句:通过对查询语句的分析可以了解语句的执行情况,
 EXPLAIN | DESC SELECT 语句: 可以分析查询语句:

结果:
***************** 1. row *****************
id: 1
select_type: SIMPLE
table: person
type: ALL
possible_keys: NULL
key: NULL
key_len: NULL
ref: NULL
rows: 1
Extra:
1 row in set (0.00 sec)

id : 表示select 语句的编号;   select_type:表示select 语句的类型;

table 表示查询的表         type表示表的链接类型

possible_keys: 表示查询中可能使用的索引

key 表示查询中使用到的索引

key_len: 表示索引的长度

ref  表示使用那个列或常数与索引一起来查询记录

rows 表示查询的行数

Extra 表示查询过程的附件信息。

索引对查询速度的影响:

查询不适用索引,查询语句就会查询所有字段。若有索引就会只查询索引字段。

使用索引会大大提高查询的速度,但查询语句中如果有 like关键字

  eg : select * from student where name like ‘%di ‘; 如果like 后第一个字符为%则索引无用。

查询语句中使用多个索引:

eg : create index index_birth on student (birth,department);创建索引;

 表中有多个索引时,只有查询条件中使用了这些字段的第一个字段

查询语句中只有OR关键字:
  eg: select * from student where name=’zhangsan’ or id =3;

如果or 前后的两个条件都是索引时,查询中将使用索引,如果前后有一个条件不是索引,则查询时不使用索引。

注:优化子查询:子查询在执行时MYSQL会为内层查询语句建立一个临时表,然后外层查询语句在临时表中查询,

查询完后MYSQL会销毁这些临时表,当数据量大时查询速度就会有一定的影响。

一般使用链接查询代替子查询,链接查询不会建立临时表。

优化数据库的结构:

1、将字段很多的表分解为多个表: 即字段很多的表中很多字段都是不经常使用的,

当数据量大时这就会给查询带来影响,可以将他分解为多个表。当需要字段时可以进行

连表查询,得到不经常查看的字段信息。

2、增加中间表:有时需要经常查询两个表中的几个字段。如果经常连表查询,

会降低MYSQL数据库的查询速度,这样可以建立中间表来提高查询速度,

3、增加冗余字段。

优化插入记录的速度:

1、禁用索引:插入记录时MYSQL会对表的索引进行排序,如果插入大量

记录就会降低插入速度,可以插入之前禁用索引,插入完后,再开启索引,

ALTER TABLE 表名 DISABLE KEYS;  禁用索引

ALTER TABLE 表名 ENABLE KEYS;   开启索引。

2、禁用唯一性检查:如果有唯一性限制,可以禁用唯一性效验,等插入后再开启。

SET UNIQUE_CHECKS=0; 禁用

SET UNIQUE_CHECKS=1;开启

3、优化insert语句:

 插入多条记录时:使用一个insert语句插入多条记录,这减少了与数据库的

链接等操作,速度较快。,

eg: insert into food valus(“office’,1),(‘茶’,2),(),(),;

多条记录可以综合插入:
start transaction;
insert into …..
insert into
….
commit;

实现操作,再提交。

分析表、检查表、优化表、

1、分析表:ANALYZE TABLE 表名1; 可以分析表

2检查表、CHECK TABLE 表名 【option】;option有5个参数

quick、fast、 changed \medium extended .这5个参数执行效率依次降低

3\优化表,OPTIMIZE TABLE 表名;

   可以消除删除和更新造成的磁盘碎片;

0 0
原创粉丝点击