MVVC
Posts
索引分类 按数据结构分类 B+Tree索引 Hash索引 Full-Text索引 按物理存储分类 聚簇索引 二级索引 按字段特征分类 主键索引 唯一索引 按字段个数分类 单列索引 联合索引 什么时候不需要用索引 索引的优化方法 前缀索引优化 含义: 前缀索引即使用某个字段中字符串的前几个字符建立索引。 优点: 前缀索引可以减小索引字段大小,增加一个索引页中存储的索引值,提高索引的查询速度。 局限性: order by 无法使用前缀索引,无法把前缀索引用作覆盖索引 覆盖索引优化 含义: 覆盖索引是指SQL中query的所有字段,在索引B+Tree的叶子节点上都能找得到的那些索引,从二级索引中查询得到记录,而不需要通过聚簇索引查询获得,可以避免回表的操作。 主键索引最好自增 主键索引为自增,在插入是是顺序插入即在已经数据结构的后方拓展,如果主键索引不为自增,则会产生随机插入的情况,即插入到已经的数据结构中,这时候就需要移动其他数据来满足插入新数据的需求。严重的甚至会产生页分裂即将数据从一个页复制到另一个页中。 索引最好设置为NOT NULL 防止索引失效 防止索引失效 索引失效情况列举 对索引使用左或者左右模糊匹配 当我们使用 like %xxx或者 like %xx% 这两种方式都会造成索引失效 对索引使用函数 如: select * from t_user where length(name)=6; 对索引进行表达式计算 如: explain select * from t_user where id + 1 = 10; 对索引隐式类型转换 如: select “10” > 9 联合索引非最左匹配 Where子句中使用OR 如果在OR前的条件列是索引列,而在OR后的条件不是索引列,那么索引失效。
MYSQL锁 锁原理 锁分类 按模式分类 乐观锁 定义: 乐观锁是在假设不会发生并发冲突,只是在提交时检查是否违反数据完整性。 实现层面: 业务代码自己实现 使用场景: 并发量小 机制: 提交更新时检查版本号或者时间戳是否符合 悲观锁 定义: 悲观锁是在假设一定会发生并发冲突,屏蔽一切可能违反数据完整性的操作。 机制: 表锁,行锁等 实现层面: 数据库本身 适用场景: 并发量大的情况。 按粒度分类 全局锁 全局锁一般是在对数据库操作的时候使用上,如备份数据库或者恢复数据库等。 表锁 隐式上锁(默认,自动加锁,自动释放) 显示上锁 实现方式: 显式添加共享锁: select * from user lock in share mode 显示添加排它锁: select * from user for update 解锁方式: 1. 提交事物(commit) 2. 回滚事物(rolback) 3. kill阻塞进程 表锁分类![[WeChat146d352dc0b3c0c10897bab560a82ebd.png]] 表级锁的兼容性 共享锁(s) OR 读锁 机制: 允许一个事物去读取一行,阻止其他事物获得相同数据集的排他锁。 排它锁(X) OR 写锁 机制: 允许获得拍排它锁的事务更新数据,阻止其他事务获得相同数据集的共享锁和排它锁。 意向共享锁(ISj) 机制: 一个事物给一个数据行加共享锁时,必须先获得该表的IS锁。 意向排它锁(IX) 机制: 一个事物给一个数据行加排它锁时,必须先获得该表的IX锁。 MDL锁 用处: MDL锁用于解决或者保证DDL操作与DML操作之间的一致性。 介绍:MDL锁是表级锁的一种,在执行DDL的时候时候会加加上MDL读锁,在对表结构做更改的时候会对MDL加上写锁。 页锁 在bdb存储引擎中实现,不过多讨论 行锁 行锁分类 共享锁(s) OR 读锁 机制: 允许一个事物去读取一行,阻止其他事物获得相同数据集的排他锁。 排它锁(X) OR 写锁 机制: 允许获得拍排它锁的事务更新数据,阻止其他事务获得相同数据集的共享锁和排它锁。 ...
SQL优化 参考: MySQL索引原理及慢查询优化 - 美团技术团队 (meituan.com)
企业盈利周期 指标 历史指标 实时指标 获取途径 备注 净利润 akshare akshare 可获取 无 营业收入增长率 无 无 未发现 无 营业收入增长率预测 无 无 未发现 无 现金流 akshare akshare 可获取 无 上市公司投资 无 无 未发现 无 企业人数 无 无 未发现 无 企业纳税 无 无 未发现 无 行业景气指数 无 无 未发现 发现有企业景气指数 净利润 年报利润表 AKShare 股票数据 — AKShare 1.10.57 文档 年报现金流 AKShare 股票数据 — AKShare 1.10.57 文档 市场周期 信贷周期 股市周期 房地产周期 宏观 中观数据
CA AP