mysql数据库表太大查询慢优化的几种方法

mysql数据库表太大查询慢优化的几种方法,第1张

1

适当建立索引

2

对表进行水平划分

3

选择适当的字段类型,特别是主键

4

文件、图片等大文件用文件系统存储,不用数据库

5

外键表示清楚,方便建立索引

6

宁可集中批量 *** 作,避免频繁读写

7

选择合适的引擎

8

sql语句优化

这个问题涉及一下几个知识点

一、一般情况表的优化主要是索引,恰当的索引能加快查询的速度,当然索引的建立与表的主要用途有关,特别是表最频繁的 *** 作是查询、添加、删除,查询是按哪些条件进行查询。

二、所谓的大表,对于数据库来说,没有绝对大小的限制,只要 *** 作系统的硬盘、内存合适,表在一定范围内大一点、小一点对性能影响不大。分表是一个痛苦的过程,因为从逻辑上把表分成几个部分,会把查询、添加、修改的应用程序变得相当复杂,除非万不得已,没人会这样选择。数据太大的时候,一般使用磁盘阵列来提高性能,物理上一个大文件是分片存在不同的硬盘上,不同的硬盘可以并行读取,内存组装一下,达到了高速读取的效果。

MySQL超大表如何提高count速度

经常用到count统计记录数,表又超级大,这时候sql执行很慢,就是走索引,也是很慢的,怎么办呢?

1.这个时候我们就要想为什么这么慢:根本原因是访问的数据量太大,就算只计算记录数也是很慢的。

2.如何解决?减少数据访问量。

3.怎么才能减少访问量呢?更小的索引。

4.怎么能使索引更小呢?创建前缀索引。

至此我们的方案出来了!下面看看具体的:

表结构:

CREATE TABLE `sbtest3` (

`id` int(11) NOT NULL AUTO_INCREMENT,

`k` int(11) NOT NULL DEFAULT '0',

`c` char(120) NOT NULL DEFAULT '',

`pad` char(60) NOT NULL DEFAULT '',

PRIMARY KEY (`id`),

KEY `k_3` (`k`)

) ENGINE=InnoDB AUTO_INCREMENT=5000001 DEFAULT CHARSET=latin1


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

原文地址: https://outofmemory.cn/zaji/7430580.html

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

发表评论

登录后才能评论

评论列表(0条)

保存