栏目分类:
子分类:
返回
文库吧用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
文库吧 > IT > 软件开发 > 后端开发 > Java

Mysql的优化?

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Mysql的优化?

mysql的优化可以分为四种:

架构优化、设计优化、使用优化、查询优化

架构优化:

1.数据量大:分库分表

水平分库:将一个库的数据放到不同的服务器上

垂直分库:将一个库的相关联的表,放到不同的数据库中

水平分表:   将一个表的数据分到多个表中

垂直分表:将一个表的字段放到不同的表中

2.并发量大

建立mysql集群,主从复制:分为一主一从,一主多从

读写分离:主数据库负责增删改,从数据库负责查询(主数据库在写入数据后会记录到bin.log中,从数据库会将数据同步过来)

还可以使用中间件:

shading-jdbc,mycat等

设计优化:

使用范式和反范式:

使用范式可以便于修改,降低查询的效率

使用反范式能够提高查询,但是会降低修改的效率

选择合适的数据库引擎:

innoDB:数据库的默认引擎,它支持事务,支持表锁,行锁,安全性高,支持数据恢复,查询效率低。

myIsam:它不支持事务,支持全文索引,查询时会保留数据的行数,只支持行锁,查询效率高,不支持数据恢复。

1.字段优化:主键

必须设置主键,

尽量使用业务字段作为主键,

int自增的效率高于UUID

2.数据类型:

尽量使用varchar,不适用char(前者储存空间更小,利于查询)

尽量使用小的数据类型

有限的数据,尽量使用枚举而不是varchar

3.尽量使用notNULL约束

使用优化:加索引,加缓存(mybatis,redis缓存),使用连接池(HiKari,c3p0),分页查询

查询优化:

尽量避免使用select * 查询

查询之前尽量使用explain查看程序计划

尽量避免where中使用函数或者表达式

尽量避免模糊查询时,将%写在前面

尽量避免where中使用or,union代替

尽量使用exists代替in

转载请注明:文章转载自 www.wk8.com.cn
本文地址:https://www.wk8.com.cn/it/1038960.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 wk8.com.cn

ICP备案号:晋ICP备2021003244-6号