影响mysql数据库性能的因素有哪些

影响mysql数据库性能的因素有哪些,第1张

影响数据库性能的主要因素总结如下:

1、sql查询速度

2、网卡流量

3、服务器硬件

4、磁盘IO

以上因素并不是时时刻刻都会影响数据库性能,而就像木桶效应一样。如果其中一个因素严重影响性能,那么整个数据库性能就会严重受阻。另外,这些影响因素都是相对的。

例如:当数据量并没有达到百万千万这样的级别,那么sql查询速度也许就不是个重要因素,换句话说,你的sql语句效率适当低下可能并不影响整个效率多少,反之,这种情况,无论如何怎么优化sql语句,可能都没有太明显的效果。

相关内容拓展:

1、SQL查询速度

风险:效率低下的SQL

2、网卡流量

风险:网卡IO被占满(100Mb/8=100MB)

方案:

①减少从服务器的数量。从服务器都要从主服务器上复制日志,所以,从服务器越多,网络流量越大。

②进行分级缓存。前方大量缓存突然失效会对数据库造成严重的冲击。

③避免使用“select * ”进行查询

④分离业务网络和服务器网络

3、磁盘IO

风险:磁盘IO性能突然下降。

方案:使用更好的磁盘设备解决。

希望可以帮到您,谢谢!

1、ORDER

BY的索引优化。如果一个SQL语句形如:

SELECT

[column1],[column2],….

FROM

[TABLE]

ORDER

BY

[sort]

在[sort]这个栏位上建立索引就可以实现利用索引进行order

by

优化。

2、WHERE

+

ORDER

BY的索引优化,形如:

SELECT

[column1],[column2],….

FROM

[TABLE]

WHERE

[columnX]

=

[value]

ORDER

BY

[sort]

建立一个联合索引(columnX,sort)来实现order

by

优化。

注意:如果columnX对应多个值,如下面语句就无法利用索引来实现order

by的优化

SELECT

[column1],[column2],….

FROM

[TABLE]

WHERE

[columnX]

IN

([value1],[value2],…)

ORDER

BY[sort]

3、WHERE+

多个字段ORDER

BY

SELECT

*

FROM

[table]

WHERE

uid=1

ORDER

x,y

LIMIT

0,10

建立索引(uid,x,y)实现order

by的优化,比建立(x,y,uid)索引效果要好得多。

MySQL

Order

By不能使用索引来优化排序的情况

*

对不同的索引键做

ORDER

BY

:(key1,key2分别建立索引)

SELECT

*

FROM

t1

ORDER

BY

key1,

key2

*

在非连续的索引键部分上做

ORDER

BY:(key_part1,key_part2建立联合索引key2建立索引)

SELECT

*

FROM

t1

WHERE

key2=constant

ORDER

BY

key_part2

*

同时使用了

ASC

DESC:(key_part1,key_part2建立联合索引)

SELECT

*

FROM

t1

ORDER

BY

key_part1

DESC,

key_part2

ASC

*

用于搜索记录的索引键和做

ORDER

BY

的不是同一个:(key1,key2分别建立索引)

SELECT

*

FROM

t1

WHERE

key2=constant

ORDER

BY

key1

*

如果在WHERE和ORDER

BY的栏位上应用表达式(函数)时,则无法利用索引来实现order

by的优化

SELECT

*

FROM

t1

ORDER

BY

YEAR(logindate)

LIMIT

0,10


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/7408269.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-05
下一篇 2023-04-05

发表评论

登录后才能评论

评论列表(0条)

保存