Mysql数据库,建数据库,建表,建索引的注意事项

1.百亿级数据可以部署单服务器(存一些简单数据)。复杂数据可以部署2-3台服务器(要保持数据量尽量均衡关联性强的表尽量放在一个数据库中)。

 

2.单服务器

表设计(适用于业务)

索引设计(能不建就不建,会降低插入删除等操作的效率;建差异性大的字段;)

数据类型(尽量用整形实现)
 

3.mysql索引用到的数据结构:B Tree,B+ Tree, Hashmap(有数据倾斜的危险)

 

4.破坏索引的sql语句

https://www.cnblogs.com/xixibaby/p/6409928.html

 

5.最左侧原则

https://blog.csdn.net/i_am_a_sb/article/details/78950324

 

6.java集合中放入10-20万的数据,是比较稳定的(jvm默认配置)

 

 

MySQL 和 MongoDB 两者都是免费开源的数据库。在建表时,需要注意以下几点: 1. 遵循面向对象原则,保证每列与主键相关。 2. 遵循表职能单一性原则,如果一张表负责了两个或两个以上的职责,那么该表应进行拆分。 3. 遵循表字段与表直接关联原则,如果一个字段与当前表是间接关联的,那么就该创一张新的表来保存该字段。 4. 遵循字段最小原子化原则,一个字段如果包含了多个信息或含义,则该字段就应该拆成多个字段。 5. 遵循字段名唯一原则,所有字段不允许单个单词形式存在,应该使用有意义的名称。 6. 不创外键关联,只是外键关系,设计中的外键仅是为了让大家知道其对应的表才写进去的,实际并不需要在数据库中创外键。 7. 尽量少使用存储过程,除非某个功能对性能要求非常高,且没办法通过存储过程以外的方式来提升性能时,才考虑使用存储过程。 8. 应针对所有表的主键和外键索引,有针对性的立组合属性的索引,提高检索效率。 9. 必须立业务主键,除自增id之外,需要使用业务主键,常使用”业务前缀+时间戳+随机数”组成,实现简单,与数据库无关,移植性较好。 10. 所有字段不允许空值,varchar类型默认统一设置为”Empty String”,此处不使用NULL。区别:NULL,默认存为(Null),指的是对象;Empty String默认存为空串””,在java中进行非空判断存在区别userId==null/userId.equals(“”);数值类型默认为0。 11. 表中字段根据数据类型统一,数值类:bigint,金额:decimal,状态:tinyint,时间:datetime。 12. 每张表需要索引索引方式:选取使用频率最高的字段作为索引字段。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值