数据库
ambition_forever
闲谈莫论人非
展开
-
Mysq索引优化、如何避免死锁
1、使用覆盖索引来避免回表。2、使用自增字段作为主键优化查询。3、前缀索引,减少索引存在页,进而在查询是减少io,提高效率。 order by 无法使用前缀索引,无法把前缀索引作为覆盖索引。4、如果查询条件中使用or,且or的前后条件中有一个列没有索引,那么涉及索引都不会被使用到。5、可以尝试通过force index 来强制使用索引。6、mysql事务的隔离性通过 锁来实现,事务的原子性和一致性通过undolog和mvcc实现。事务的持久性通过redolog + ...原创 2021-11-20 17:06:52 · 846 阅读 · 0 评论 -
如何写出高性能SQL语句?
1、慢SQL语句的几种常见原因 1)、无索引 2)、索引失效索引会失效原因:未遵循左前缀原则;在索引列上做操作比如计算、函数、自动或者手动类型转化;范围检索也会让索引失效比如联合索引 (a,b,c) 在sql查询的时候 where a = x and b > y and c = z 这样会导致索引c失效,原因是索引在b处已经开始排序了;使用!= or <> 无法使用索引; is null 和 is not null 也...原创 2021-11-20 13:38:42 · 763 阅读 · 0 评论 -
数据库唯一索引和普通索引的区别?
1、如果业务字段更新频繁的化,选择唯一索引还是普通索引? 如果业务上能保证唯一性的化尽量使用普通索引而不是唯一索引。2、针对查询而言普通索引的查询是在查询到符合条件的内容以后,继续进行下一项内容查询,如果下一项不符合则返回;但是唯一索引的查询是查询到满足条件的内容直接返回,整体上少一次查询比较,但是整体效率相差不大。3、针对更新操作来说两者就有很大的差距了。 要在更新操作上理解两者之间的差距首先理解一下change buffer。 change buffer...原创 2021-11-13 16:09:30 · 981 阅读 · 0 评论 -
数据库案例分析
一张mysql大数据表有几千万数据,但有一自增id字段,且为主键,要遍历此表的所有数据,写出有效的方法和sql(禁止使用limit n,m)。案例分析:数据表 collect ( id, title ,info ,vtype) 就这4个字段,其中 title 用定长,info 用text, id 是逐渐,vtype是tinyint,vtype是索引。10万数据的效果。select转载 2017-09-27 11:46:25 · 2264 阅读 · 0 评论 -
数据库相关-01
分表的方法:建一个索引表: t (id,title,vtype) 并设置成定长,然后做分页,分页出结果再到 collect 里面去找info 。 是否可行呢?实验下就知道了。10万条记录到 t(id,title,vtype) 里,数据表大小20M左右。用select id from t where vtype=1 order by id limit 90000,10; 很快了。原创 2017-09-27 11:59:32 · 175 阅读 · 0 评论 -
快速获取mysql行数
explain select * from table; //返回数组,rows 。表示数据库引擎保存的估计的行数。原创 2019-02-20 12:00:26 · 1410 阅读 · 0 评论