当前位置: 首页 > news >正文

数据库一般会采取什么样的优化方法?

数据库一般会采取什么样的优化方法?

在这里插入图片描述
1、选取适合的字段属性

为了获取更好的性能,可以将表中的字段宽度设得尽可能小。
尽量把字段设置成not null
执行查询的时候,数据库不用去比较null值。
对某些省份或者性别字段,将他们定义为enum类型,enum类型被当做数值型数据来处理,而数值型数据被处理起来的速度要比文本类型块很多。
2、使用join连接代替子查询

3、使用联合union来代替手动创建的临时表

注意:union用法中,两个select语句的字段类型要匹配,而且字段个数要相同。

4、事务

要么都成功,要么都失败。

可以保证数据库中数据的一致性和完整性。事务以begin开始,commit关键字结束。

如果出错,rollback命令可以将数据库恢复到begin开始之前的状态。

事务的另一个重要作用是当多个用户同时使用相同的数据源时,它可以利用锁定数据库的方式为用户提供一种安全的访问方式,这样就可以保证用户的操作不被其他的用户干扰。

5、锁定表

尽管事务是维护数据库完整性的一个非常好的方法,但却因为它的独占性,有时会影响数据库的性能,尤其是在大应用中。

由于在事务执行的过程中,数据库会被锁定,因此其它用户只能暂时等待直到事务结束。

有的时候可以用锁定表的方法来获得更好的性能,

共享锁:其它用户只能看,不能修改

lock table person in share mode;

对于通过lock table 命令主动添加的锁来说,如果要释放它们,只需发出rollback命令即可。

6、使用外键

锁定表的方法可以维护数据的完整性,但是它却不能保证数据的关联性,这个时候可以使用外键。

7、使用索引

索引是提高数据库查询速度的常用方法,尤其是查询语句中包含max()、min()、order by这些命令的时候,性能提高更为显著。

一般来说索引应该建在常用于join、where、order by的字段上。尽量不要对数据库中含有大量重复的值得字段建立索引。

8、优化的查询语句

在索引的字段上尽量不要使用函数进行操作。

尽量不要使用like关键字和通配符,这样做法很简单,但却是以牺牲性能为代价的。

你给自己留的退路越多,你失败的可能性就越大。-----酷酷的韩

http://www.lryc.cn/news/269843.html

相关文章:

  • 编程笔记 html5cssjs 015 HTML列表
  • 【力扣题解】P404-左叶子之和-Java题解
  • elasticsearch 索引数据多了怎么办,如何调优,部署
  • Spring Cloud Gateway之Predicate断言详解
  • JavaScript中的prototype和_proto_的关系是什么
  • 机器学习(二) -- 数据预处理(3)
  • 【数学建模美赛M奖速成系列】Matplotlib绘图技巧(三)
  • 手写Spring与基本原理--简易版
  • EasyNTS端口穿透服务新版本发布 0.8.7 增加隧道流量总数记录,可以知晓设备哪个端口耗费流量了
  • python自动合计各部周销
  • Java内存区域与内存溢出异常
  • 远程网络唤醒家庭主机(openwrt设置)
  • Spring知识02
  • Linux服务器搭建笔记-006:拓展/home目录容量
  • 元宇宙与VR虚拟现实的未来如何?
  • 微服务事务处理:CAP 定理和最终一致性的关系
  • 【Linux操作系统】探秘Linux奥秘:操作系统的入门与实战
  • Copilot概述:AI助手引领编程新纪元
  • 最小覆盖子串(LeetCode 76)
  • Windows Sockets 2 笔记
  • 13章总结
  • (2023,3D NeRF,无图像变分分数蒸馏,单步扩散)SwiftBrush:具有变分分数蒸馏的一步文本到图像扩散模型
  • 【WPF.NET开发】将路由事件标记为已处理和类处理
  • 2023年03月18日_微软office365 copilot相关介绍
  • GBASE南大通用携手宇信科技打造“一表通”全链路解决方案
  • Python 内置高阶函数练习(Leetcode500.键盘行)
  • 【JavaWeb】day01-HTMLCSS
  • 【工具】windeployqt 在windows + vscode环境下打包
  • 跟着LearnOpenGL学习12--光照贴图
  • DotNet 命令行开发