注册
|
登录
发帖
热搜
活动
交友
discuz
论坛
BBS
翼度工具
翼度网址导航
开发工具
Linux命令速查
网页设计配色表
在线制作icon
颜色代码选取器
翼度科技
»
论坛
›
编程开发
›
mysql
›
查看内容
返回列表
发新帖
mysql优化
梦想桔丰倪氏
梦想桔丰倪氏
当前离线
积分
30
10
主题
10
帖子
30
积分
新手上路
新手上路, 积分 30, 距离下一级还需 20 积分
新手上路, 积分 30, 距离下一级还需 20 积分
积分
30
发消息
显示全部楼层
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命令可以得到:
– 表的读取顺序
– 数据读取操作的操作类型
– 哪些索引可以使用
– 哪些索引被实际使用
– 表之间的引用
– 每张表有多少行被优化器查询
来源:
https://www.cnblogs.com/yinxixi/p/18388054
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!
上一篇:
字节跳动-后端开发岗实习面经
下一篇:
数据库中查询含有某个emoji表情的行数据
发表于 2024-9-3 00:45:30
来自手机
举报
回复
使用道具
分享
返回列表
发新帖
本版积分规则
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
快速回复
快速回复
返回顶部
返回顶部
返回列表
返回列表