Heim  >  Artikel  >  Datenbank  >  添补mysql的性能优化数条经验

添补mysql的性能优化数条经验

WBOY
WBOYOriginal
2016-06-07 16:25:44807Durchsuche

增补mysql的性能优化数条经验 1.只要一条数据时,使用limit 1,如果你确定你的条件下,只可能会有一条数据,请不要再让mysql继续下去查找下去 比较用例 1.1.select * from tablename where id = 1; 1.2.select 1 from tablename where id = 1 limit 1; 2.如果

增补mysql的性能优化数条经验

1.只要一条数据时,使用limit 1,如果你确定你的条件下,只可能会有一条数据,请不要再让mysql继续下去查找下去

比较用例

1.1.select * from tablename where id = 1;

1.2.select 1 from tablename where id = 1 limit 1;

2.如果表中某一个字段经常被用来查询,那么请使用索引对该字段进行标记

alter table tablename and index(fieldone);

如此,查询的效率会增加很多。

3.在join 表的时候使用相当类型的列,并将其索引

如果你一个sql中使用较多的join查询,那么请确认两个表中的条件字段是否被建立索引,并且字段具有相当类型,比如说使用以下语句进行join链接

select * from table1 t1 left join table2 t2 on t1.name = t2.name;

那么请确认t1.name和t2.name具有相同类型的字符集,并且name在两个表中都有索引,那么这样的查询速度也会提升很多。

4.避免使用select *

如果你确定你将要获取表中某一些列,那么使用以下的查询

select field1 from table1?

而不是

select * from table1

因为越多的查询自然会增加数据库查询的压力,同时,从后台传输到前台两个独立的服务器时,也会增加网络传输的压力,那么请尽量使用需要什么字段就获取什么字段的好习惯。

5.我们应该为每张表设置一个自动增长的列,并且为主键,且字段类型为unsigned(未签字的),然后为auto_increment(自动增长的),并且请不要使用varchar类型的字段作为主键,即使是唯一的。

?

今天暂时先总结以上例子,稍后继续。

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn