mysql设计优化 mycat

大神这里什么都总结了

分库分表也就这样

1:隔离的级别,这当前去约车的确自己是混乱了。读未提及,那就是脏读。读已提交,我在一个事务没有完成的时候,两次读取数据,发现这个数据已经被别的事务改变了,那就是不可重复读,影响了我的条件。可重复读,就是别的事务对我条件的改变,我不care,你影响不了我的条件,但是,会影响我的结果,我select * from user where user_name = zhangj219,这信息不会变,你改了也不影响,但是你插入一个用户,我两次的select * from user肯定不一样,可以影响你的结果,这叫幻影行。可串行话,就是一次只能有一个事务! ------------- 不好记,总是忘,当时扯什么ABA都混乱了,跟并发控制都混淆了。

数据库设计技能

2:数据库设计就是3F和反3F的平衡。简单说一下,“查询某个订单的下单用户信息和订单详情”,客服MM经常用。这个最贴近实际。order表里面,order_id,user_id,通常都会冗余一个user_name,我不能查个姓名就做一次关联,适当冗余,姓名,手机号,方便客服查询。然后,订单商品关联里面,可以把商品的价格也冗余一下吧,就这么简单的冗余,查询一个订单的用户,最常用的信息,他的手机,X先生,多少钱,多少商品,就出来了。要冗余太多,那就关联查询了。

mysql设计优化 mycat_第1张图片
join了5个表

从订单编号对应的订单商品关联表中找到商品,再从商品信息表中找出明细,再根据用户ID去用户表中找出用户的信息。

mysql设计优化 mycat_第2张图片
冗余两个字段 join了2个表

这就是数据库设计的技巧。

3:合适的数据类型,银行decimal精准,timestamp占4个自己,datetime占了8个字节。char定长,varchar不定长。丰富的日期类型,选择。

你可能感兴趣的:(mysql设计优化 mycat)