阿里巴巴开发手册数据库方面的优化

简介: 其他    1.对于后台输出到前台的变量必须要加$!{var}    2.Math.random()这个方法的返回值是double类型,注意取值范围是0=<

其他
    1.对于后台输出到前台的变量必须要加$!{var}
    2.Math.random()这个方法的返回值是double类型,注意取值范围是0=< <1,注意除0异常,
    要想获得整型数,不要*10,只需要调用Random的nextInt(),nextLong()方法,
    3.不要在视图中加任何的逻辑,视图的任务就是展示,
    4.任何数据结构的构造或初始化都要指定其大小,避免数据无限增长吃光内存
    
数据库规约
    1.表达与否概念的字段必须用is_xxx,如删除与否is_deleted
    2.数据库名,表名,字段名都不允许出现大写,因为MySQL在linux默认下区分大小写
    3.decimal对于小数的存储用,禁止使用float和double,float和double存在精度损失的问题,很可能在值计算时得不到正确的结果
    如果数据范围超出了decimal的范围的话,建议就把整数和小数分开存
    4.如果存取的字符串长度确定了,那么就用char定字符串的长
    5.varchar是可变字符串,那么当其字符串超出5000就用text,独立出一张表避免影响其它字段的索引效率
    6.表的命名最好是业务名称_表的作用
    7.字段允许适当冗余,但是对于冗余的字段有要求:1.不是频繁修改,2.不是varchar超长字段
    8.合适的字符长度,可以提高检索速度。
    

SQL语句
    1.禁止使用count(常量)或者count(列名),因为它们避免不了NULL值
    用count(*)来计算条数
    2.count(distinct col)计算该列没有NULL值的不重复的数量
    3.注意count(col)当这一列全为NULL时,返回0,而sum(col)返回的值是NULL
    4.当代码中写查询分页时,count为0应直接返回,避免执行后边的代码
    5.对于数据的修改,删除操作时应该先select,避免出现错误
    6.在表查询时,应该禁止*,能用字段就用字段
    7.select * from user where id in
    <foreach collection="ids" item="item" open="("separator="," close=")">#{item}</foreach>
    sql.xml 配置参数使用:#{}, #param# 不要使用${} 此种方式容易出现 SQL 注入,
    select * from userorder by #{name} desc  /*有问题sql*/
    select * from userorder by ${name} desc
    8.iBATIS 自带的 queryForList(String statementName,int start,int size)不推 荐使用。 
    正例:Map<String, Object> map = new HashMap<String, Object>();
            map.put("start", start);    map.put("size", size);  
    9.不要写一个大而全的更新数据,更新哪些写哪些,因为容易出错,效率低
    10.@Transactional 事务不要滥用,
    11.Query对于查询对象的封装,超过两个以上的对象禁止用Map来传输

相关文章
|
1月前
|
存储 缓存 监控
数据库优化技术:提升性能与效率的关键策略
【10月更文挑战第15天】数据库优化技术:提升性能与效率的关键策略
62 8
|
15天前
|
存储 NoSQL 分布式数据库
微服务架构下的数据库设计与优化策略####
本文深入探讨了在微服务架构下,如何进行高效的数据库设计与优化,以确保系统的可扩展性、低延迟与高并发处理能力。不同于传统单一数据库模式,微服务架构要求更细粒度的服务划分,这对数据库设计提出了新的挑战。本文将从数据库分片、复制、事务管理及性能调优等方面阐述最佳实践,旨在为开发者提供一套系统性的解决方案框架。 ####
|
16天前
|
存储 SQL 数据库
深入浅出后端开发之数据库优化实战
【10月更文挑战第35天】在软件开发的世界里,数据库性能直接关系到应用的响应速度和用户体验。本文将带你了解如何通过合理的索引设计、查询优化以及恰当的数据存储策略来提升数据库性能。我们将一起探索这些技巧背后的原理,并通过实际案例感受优化带来的显著效果。
31 4
|
18天前
|
SQL druid 数据库
如何进行数据库连接池的参数优化?
数据库连接池参数优化包括:1) 确定合适的初始连接数,考虑数据库规模和应用需求;2) 调整最大连接数,依据并发量和资源状况;3) 设置最小空闲连接数,平衡资源利用和响应速度;4) 优化连接超时时间,确保系统响应和资源利用合理;5) 配置连接有效性检测,定期检查连接状态;6) 调整空闲连接回收时间,适应访问模式并配合数据库超时设置。
|
26天前
|
SQL Oracle 关系型数据库
Oracle数据库优化方法
【10月更文挑战第25天】Oracle数据库优化方法
33 7
|
22天前
|
SQL 缓存 监控
数据库优化
【10月更文挑战第29天】数据库优化
29 1
|
26天前
|
存储 Oracle 关系型数据库
Oracle数据库优化策略
【10月更文挑战第25天】Oracle数据库优化策略
21 5
|
22天前
|
缓存 关系型数据库 MySQL
如何优化 MySQL 数据库的性能?
【10月更文挑战第28天】
46 1
|
25天前
|
XML Java 数据库连接
如何使用HikariCP连接池来优化数据库连接管理
在Java应用中,高效管理数据库连接是提升性能的关键。本文介绍了如何使用HikariCP连接池来优化数据库连接管理。通过引入依赖、配置参数和获取连接,你可以显著提高系统的响应速度和吞吐量。 示例代码展示了从配置到使用的完整流程,帮助你轻松上手。
90 3
|
24天前
|
监控 关系型数据库 MySQL
数据库优化:MySQL索引策略与查询性能调优实战
【10月更文挑战第27天】本文深入探讨了MySQL的索引策略和查询性能调优技巧。通过介绍B-Tree索引、哈希索引和全文索引等不同类型,以及如何创建和维护索引,结合实战案例分析查询执行计划,帮助读者掌握提升查询性能的方法。定期优化索引和调整查询语句是提高数据库性能的关键。
123 1
下一篇
无影云桌面