数据库一般会采取什么样的优化方法
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关键字和通配符,这样做法很简单,但却是以牺牲性能为代价的。避免在查询中进行自动类型转换,因为类型转换也会使索引失效。
猜你喜欢LIKE
相关推荐HOT
更多>>运行时异常和一般异常(受检异常)区别是什么?
RuntimeException异常和受检异常之间的区别:是否强制要求调用者必须处理此异常,如果强制要求调用者必须进行处理,那么就使用受检异常,否则就...详情>>
2022-11-17 11:35:00java编程入门先学什么
对于想学java编程但零基础的同学,初期刚入门肯定比较迷茫,但这再正常不过了。java编程是有一定门槛的,不可能伸手就来,初期学习一定要先打好...详情>>
2022-10-18 14:12:00介绍一下网关的作用
网关相当于一个网络服务架构的入口,所有网络请求必须通过网关转发到具体的服务。统一管理微服务请求,权限控制、负载均衡、路由转发、监控、安...详情>>
2022-10-11 16:25:19Jedis和redisson有哪些区别?
Jedis和Redisson都是Java中对Redis操作的封装。Redisson不仅封装了redis ,还封装了对更多数据结构的支持,以及锁等功能,相比于Jedis更加大。...详情>>
2022-10-10 13:58:00数据库的3大范式是什么?
每个属性都与主键有直接关系,而不是间接关系;如果有特殊情结,当然要特殊对待,数据库设计最重要的是看需求和性能,需求>性能>表结构。所以不...详情>>
2022-10-10 13:58:00Java培训问答更多>>
新Java行业疑惑解答:Java的内存管理是如何工作的?
新java script是什么?为什么要学java script
新java和大数据哪个好?未来哪个职业发展更好
新java培训班多久能学会?培训周期大概多久
新java script和java的区别有哪些?如何区分
新java script的数据类型主要有哪些?怎样学的更快
新c语言与java区别在哪里?去培训机构学哪个比较好
Java面试题库 更多>>
华为外包java面试题-Java实现单链表的逆序
Java程序员面试题
Java面试题及答案
什么是线程的上下文切换?
如何撤销已经推送(push)到远端仓库的提交(commit)信息?
你了解哪些加密算法?
- 北京校区
- 大连校区
- 广州校区
- 成都校区
- 杭州校区
- 长沙校区
- 合肥校区
- 南京校区
- 上海校区
- 深圳校区
- 武汉校区
- 郑州校区
- 西安校区
- 青岛校区
- 重庆校区
- 太原校区
- 沈阳校区
- 南昌校区
- 哈尔滨校区