本文作者:kris

MySQL优化之如何查找SQL效率低的原因-sql查询效率慢

kris 2025-01-14 01:00:05 2
MySQL优化之如何查找SQL效率低的原因-sql查询效率慢摘要: 最近我的数据库(sql)查询速度很慢,这是什么原因?查询慢是和表结构,语句,系统等相关的 建索引等方法都可以改善表结构, 另外如果返回数据量很大,当然会慢,所以你尽量查询相对有用的...

最近我的数据库(sql)查询速度很慢,这是什么原因?

查询慢是和表结构,语句,系统等相关的 建索引等方法都可以改善表结构, 另外如果返回数据量很大,当然会慢,所以你尽量查询相对有用的数据 再就是查询语句了 比如用in查询没有jion查询快,还有 between 改成 > <会快 再还有,用子查询也会慢很多, 如果是一些很复杂的查询,可以改用存储过程会好点,有时用临时表会慢但,从海量数据中查询取数进行子查询又不如用临时表快,不同的问题用不同的解决方法,看你要哪种了,单看你的问题无法直接判断。 不过,优化查询句是关键的了。

mysql中数据量大时超30万,加上order by速度就变慢很多,一般需要0.8秒左右,不加只需要0.01几秒?

那肯定的

ORDERY BY是要对某个字段进行排序的,有人喜欢加索引解决,但是若是对于一个频繁有写操作的表来说,一个索引还好说,要是有多个索引,数据表的大小增加会相当惊人

另上,建议使用InnoDB引挚,有人说这样速度会快很多

对于大数据级的数据库来说,最关键的一步还是要优化好你的SQL,还有就是使用非常规的作法,供参考

MySQL优化之如何查找SQL效率低的原因-sql查询效率慢

图片来源:网络

1,以牺牲空间换取速度,就是说看能不能进行一些适当的缓存

2,以牺牲速度换取空间,这对于小空间容量的主机可以采用

SQL语句执行很慢,怎么回事?

到这个数量级的全部更新,肯定会很慢。

第一。你的记录不一定在同一个partition,第二。不明白为什么那么多人建议你建索引,你建的索引越多,你的更新速度越慢,因为你更新记录的同时,还有更新索引。

第三。你必须知道更新速度慢的瓶颈在哪里。是读写太多,还是内存不够,还是CUP不够快,然后对症下药。下面介绍两个简单的办法,也许有效:

第一:把这个100W行的表纵向劈成两个,用外键关系连接,一个装小的,经常改变的数据比如ID,外键,状态值,时间等,另一个装大的,不经常改变的数据,比如很长的字符串,xml,text 等。

这样更新时操作小的这个表,可以大大节约内存和CPU 开销,降低磁盘操作。

坏处就是查询时会慢些。

第二:把这100W行横向切成很多个表,比如每个月的记录装在一个表里,这样每个表的记录数可能只有几万,查询,更新都会快很多。

坏处是查询,更新都不如原来好写。

文章版权及转载声明

作者:kris本文地址:https://www.damoyx.com/p/23164.html发布于 2025-01-14 01:00:05
文章转载或复制请以超链接形式并注明出处大漠游侠网

阅读
分享