![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据库
iteye_7682
这个作者很懒,什么都没留下…
展开
-
索引的创建原则
1 避免5个以上字段的组合索引。2 避免在一张表里建6个以上的索引。3 查询列和排序列与索引列的次序一致。4 使用组合索引时,应确保组合索引的第一个字段出现在查询条件中。5 不要在含有大量重复列上建索引,没有任何意义。6 索引应该创建在更新或删除操作比较少的表上。索引的目的是为了提高查询效率,但是相应会带来负面影响:如果数据更新或删除操作比较频繁,索引也会进行同步更新,这会...原创 2015-07-09 14:40:32 · 84 阅读 · 0 评论 -
主键和唯一索引的区别
1. 主键是一种约束,唯一索引是一种索引,二者本质不同。2. 主键包含一个唯一索引,但是唯一索引不一定就是主键。3. 唯一索引允许null值,但是主键不允许null值。4. 主键可以作为其他表的外键,但是唯一索引不允许作为其他表的外键。5. 一张表可以创建多个主键(包括联合主键),但可以创建多个唯一索引。...原创 2015-10-16 11:26:19 · 68 阅读 · 0 评论 -
悲观锁和乐观锁
悲观锁(Pessimistic Lock): 顾名思义,就是很悲观,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会block直到它拿到锁。传统的关系型数据库里边就用到了很多这种锁机制,比如行锁,表锁等,读锁,写锁等,都是在做操作之前先上锁。 乐观锁(Optimistic Lock):顾名思义,就是很乐观,每次去拿数据的时候都认为别人不会修改,...原创 2015-10-16 17:24:34 · 90 阅读 · 0 评论 -
sql 执行计划——EXPLAIN之type
explain结果中的type:1. const:查询结果中只有1条记录匹配(不包括使用limit 1这种命令),它用于用常量匹配主键或唯一索引。其中,system是const的特例。例如:SELECT * from rm_member where member_id = '0100809300';说明:rm_member表中member_id是主键(下同)。 2. eq_...原创 2016-02-24 09:45:58 · 602 阅读 · 0 评论 -
sql 执行计划——EXPLAIN之select_type
1. simple:简单查询,查询中不包含子查询和UNION。 2. subquery:where语句里的子查询。例如:select * from a where a_id in (select b_id from b); 3. derived:from语句里包含子查询。例如:select count(*) from (select * from a) as der;...原创 2016-02-24 15:14:31 · 668 阅读 · 0 评论 -
sql 执行计划——EXPLAIN之extra
1. using index:表示该查询使用了覆盖索引,即该查询只访问了索引就返回了结果,无需访问表,否则就表示访问了表。例如:表t的c1、c2、c3组成了联合索引,下面的语句就会出现覆盖索引:select c1, c2 from t where c1 = 1; 2. using where:表示mysql服务器从存储引擎里收到数据后,再进行“后过滤”。后过滤:先读取整行数据...原创 2016-02-24 15:47:39 · 240 阅读 · 0 评论 -
特殊字符无法入库
报错现象:org.springframework.jdbc.UncategorizedSQLException: PreparedStatementCallback; uncategorized SQLException for SQL [INSERT INTO B_ITEM_ORDER66 (ORDER_SERIAL_NUMBER,ORDER_CODE,ITEM_...原创 2017-01-06 11:17:30 · 823 阅读 · 0 评论 -
数据库范式与反范式(转)
提到范例,大家都知道第一范式,第二范式,第三范式。可是我们明白这些范式的深层含意吗?这些范式什么时候用,用它们有什么好处呢?下面我们就一起带着这些问题边想边读下面的文章。 范式 :英文名称是 Normal Form,它是英国人 E.F.Codd(关系数据库的老祖宗)在上个世纪70年代提出关系数据库模型后总结出来的,范式是关系数据库理论的基础,也是我们在设计数...原创 2014-10-08 11:16:43 · 118 阅读 · 0 评论 -
数据库分库分表
分库分表的背景: 在一些互联网项目中,经常会遇到一些表在短时间之内数据量增长很快,随着时间的推移,数据量会越来越大,如果不进行优化处理,性能会逐渐下降,甚至服务挂掉。因此分库分表是在做这类项目时必须要考虑的问题,分库分表是解决数据库压力的好办法。 分库分表的几个概念:1. 分库:将原本在同一个数据库的数据,根据业务分类,将不同的业务模块的数据放在一起,例如:将用户...原创 2015-05-25 15:24:39 · 153 阅读 · 0 评论