数据库优化

本文深入探讨MySQL数据库优化策略,包括表设计、索引管理、分表技术、读写分离及配置调优。讲解了单值、唯一、复合与全文索引的使用场景,并指导如何正确使用索引提升查询效率,同时提供了批量数据分页优化方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、MySQL优化综合性技术
表的设计合理化(符合3NF,有时也要进行反三范式操作)
添加适当索引
分表技术(水平分割、垂直分割)
主从复制,读写分离
存储过程(模块化编程,可以提高速度)
对MySQL配置优化(配置最大并发数my.ini,调整缓存大小)
系统应用优化等
服务器的硬件优化

2、索引分类
单值索引

一个索引只包含单个列,一个表可以有多个单值索引,一般来说, 一个表建立索引不要超过5个

唯一索引

索引列的值必须唯一,但允许有空值

复合索引

一个索引包含多个列

全文索引

MySQL全文检索是利用查询关键字和查询列内容之间的相关度进行检索,可以利用全文索引来提高匹配的速度。

3、MySQL语句正确使用索引
全值匹配(最好)

如:建立了三个索引,查询时最好都使用上三个索引

最佳左前缀法则

如果索引有多列,要遵守最左前缀法则,指的就是从索引的最左列开始 并且不跳过索引中的列

计算、函数、类型转换会导致索引失效
范围条件查询,右边索引失效
使用不等于(!=或者<>)时无法使用索引
or引起索引失效
like引起索引失效

4、大批量数据分页操作优化
没有优化的查询

SELECT * FROM logs1 LIMIT 500000,10;

优化

使用子查询优化方式1

select * from logs1 e inner join (SELECT id from logs1 limit 500000 ,10 ) et on e.id = et.id

使用子查询优化方式2

select * from logs1 where id >=(SELECT id from logs1 limit 500000 , 1) limit 10

使用id限定优化

记录上一页最大的id号 使用范围查询,限制是只能使用于明确知道id的情况,不过一般建立表的时候,都会添加基本的id字段,这为分页查询带来很多便利

推荐自学:http://yun.itheima.com/map/53.html?mcgcsdn

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值