mysql优化

八卦阵  论坛元老 | 2024-9-2 13:49:42 | 来自手机 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 1518|帖子 1518|积分 4554

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
mysql数据库,是一种关系型数据库。
1.mysql引擎
mysql主要是有innodb和myisam两种引擎。
innodb引擎:
事务支持:InnoDB 是支持事务的存储引擎,可以使用提交(commit)和回滚(rollback)来保证数据的完整性。
行级锁定:InnoDB 使用行级锁定(row-level locking),这意味着在操作数据时只会锁定需要修改的行,而不是整个表,有助于提高并发性能。
外键束缚:InnoDB 支持外键束缚,可以确保数据的完整性,保证参照完整性。
瓦解规复:InnoDB 提供了瓦解规复功能,可以主动举行规复,保证数据的一致性。
innodb是聚集索引,接纳b+tree的索引结构文件。存储必天生主键。
存储文件:.frm 存储表信息
.ibd  存索引和数据
myisam引擎:
全文搜刮:MyISAM 对全文搜刮功能支持较好,得当用于需要频繁举行全文搜刮的场景。
表级锁定:MyISAM 使用表级锁定(table-level locking),这意味着在操作数据时会锁定整个表,可能导致并发性能较差。
不支持事务:MyISAM 不支持事务处理,因此无法使用提交和回滚等操作来维护数据的完整性。
不支持外键:MyISAM 不支持外键束缚,需要在应用层面去维护数据的一致性。
myisam的存储文件:.frm  存储表信息
.myd  存储数据行
.myi  存索引
选择存储引擎取决于具体的业务需求。假如需要事务支持、行级锁定和数据完整性,通常会选择InnoDB。
假如对全文搜刮有很高的要求,而且不需要事务支持,可以选择MyISAM。
在实际应用中,也可以根据具体的场景灵活选择不同的存储引擎以获得最佳性能。
2.mysql索引优化
原文链接:https://blog.csdn.net/u012581020/article/details/130686557
1.硬件配置:包括CPU、内存、磁盘等硬件资源的选择和配置,以满意体系的负载和性能需求。
2.软件配置:包括MySQL的参数设置和调解,如缓存大小、连接数、并发处理数等,以适应不同的负载和访问模式。
3.SQL语句优化:包括查询语句的重构、优化和索引设计,以提高查询效率和相应速度。
4.数据结构优化:包括表结构设计和数据类型选择,以减小数据存储和访问的成本。
5.架构优化:包括MySQL主备、分片等高可用、高可扩展架构的选择和部署,以实现体系的稳固性和可扩展性需求。
作为开辟者,目前做的最多的是关于sql优化和数据结构优化
3.SQL语句优化
SQL语句优化是MySQL性能优化的关键,合理的SQL语句设计和索引优化可以显著提高体系的查询效率和相应速度。常见的SQL语句优化方法包括:
(1)使用索引:索引是MySQL查询的关键,通过合理的索引设计和使用,可以加快查询速度和减少IO操作,从而提高MySQL的性能。
(2)避免全表扫描:全表扫描是效率低下的查询方式,需要只管避免使用。可以通过索引和条件过滤等方式优化查询语句,提高查询效率。
(3)合理使用JOIN:JOIN是SQL语句中常用的操作,但假如JOIN的表过多或不合理使用,会导致性能问题。需要合理选择JOIN的表和方式,避免无意义的JOIN操作。
(4)优化子查询:子查询是复杂查询的一种常见方式,但假如不合理使用,会导致性能问题。需要只管避免嵌套过多的子查询和不必要的查询操作。
5.数据库设计优化
除了对MySQL本身举行优化,对数据库结构和数据表的设计也可以显著影响MySQL的性能。以下是一些常用的数据库设计优化方法:
(1)冗余数据的处理:避免在多个数据表中存储相同的信息,这会增加查询和更新操作的负担。
(2)合理使用数据类型:选择适当的数据类型可以减小数据表大小,从而提高查询和更新操作的效率。
(3)合理设计索引:索引是提高查询效率的关键,需要根据实际情况选择合适的字段作为索引,并避免创建过多或不必要的索引。
(4)分区表设计:对于单个数据表数据量较大的情况,可以接纳分区表的方式将数据表划分成多个子表,以提高查询效率和相应速度。
(5)使用存储过程和触发器:存储过程和触发器可以在MySQL内部执行,减少通讯开销,从而提高MySQL的性能。
3.mysql的explain
可看这个详细表明:
https://blog.csdn.net/SHI940637335/article/details/141277881
在使用sql优化的过程中,我们可以使用explain举行分析。
explain表明筹划窗口,可以很好的看到,sql的执行效率,对复杂的sql有着分析解刨的功能。有利于我们优化和对索引的添加。
通过explain命令可以得到:
– 表的读取顺序
– 数据读取操作的操作类型
– 哪些索引可以使用
– 哪些索引被实际使用
– 表之间的引用
– 每张表有多少行被优化器查询

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

八卦阵

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表