
4、数据库
文章平均质量分 83
mysql
shining曙光
这个作者很懒,什么都没留下…
展开
-
or索引问题
explain后 显示两个索引都用了,extra为 Using union(toconuid,tocomuid);通常情况下, 用UNION替换WHERE子句中的OR将会起到较好的效果. 对索引列使用OR将造成全表扫描.1 .where 语句里面如果带有or条件, myisam表能用到索引, innodb不行。如果你坚持要用OR, 那就需要返回记录最少的索引列写在最前面.在某些情况下,or条件可以避免全表扫描的。不是说,一条sql语句只能用一个索引么。用UNION替换OR (适用于索引列)转载 2023-03-08 15:48:22 · 708 阅读 · 0 评论 -
mysql7--分库分表动态扩容
一、扩容原因1)数据库并发瓶颈当前你给我的那四台机器啊,随着业务的猛增,相关请求并发已经超过了我们现在数据库服务器的并发范围2)分的库表数据已经快满了当前数据库表装不下了,又到了上亿的数据,服务器磁盘容量也不够存储了二、切分策略1. 查询切分将ID和库的Mapping关系记录在一个单独的库中。查询切分优点:ID和库的Mapping算法可以随意更改。缺点:引入额外的单点。2. 范围切分比如按照时间区间或ID区间来切分。范围切分优点:单表大小可控,天然水平扩展。缺点:无法解决集原创 2021-04-17 16:29:37 · 1464 阅读 · 0 评论 -
mysql6-MVCC多版本并发控制
一、概念1、什么是MVCC?MVCC全称Multi-Version Concurrency Control,即多版本并发控制。MVCC是一种并发控制的方法,一般在数据库管理系统中,实现对数据库的并发访问,在编程语言中实现事务内存。MVCC在MySQL InnoDB中的实现主要是为了提高数据库并发性能,用更好的方式去处理读-写冲突,做到即使有读写冲突时,也能做到不加锁,非阻塞并发读2、什么是当前读和快照读?在学习MVCC多版本并发控制之前,我们必须先了解一下,什么是MySQL InnoDB下的当原创 2021-03-17 09:37:35 · 122 阅读 · 0 评论 -
mysql5-mysql面试常见问题处理
1、SQL的生命周期?应用服务器与数据库服务器建立一个连接数据库进程拿到请求sql解析并生成执行计划,执行读取数据到内存并进行逻辑处理通过步骤一的连接,发送结果到客户端关掉连接,释放资源2、大表数据查询,怎么优化1)优化shema、sql语句+索引;2)第二加缓存,memcached, redis;3)主从复制,读写分离;4)垂直拆分,根据你模块的耦合度,将一个大的系统分为多个小的系统,也就是分布式系统;5)水平切分,针对数据量大的表,这一步最麻烦,最能考验技术水平,要选择一个合理原创 2021-03-07 14:22:30 · 103 阅读 · 0 评论 -
mysql4-数据库事务
1、事务的 四个特征(ACID)事务具有四个特征:原子性( Atomicity )、一致性( Consistency )、隔离性( Isolation )和持续性( Durability )。这四个特性简称为 ACID 特性。1 、原子性。事务是数据库的逻辑工作单位,事务中包含的各操作要么都做,要么都不做2 、一致性。事 务执行的结果必须是使数据库从一个一致性状态变到另一个一致性状态。因此当数据库只包含成功事务提交的结果时,就说数据库处于一致性状态。如果数据库系统 运行中发生故障,有些事务尚未完成就被原创 2021-03-07 13:40:26 · 117 阅读 · 0 评论 -
mysql3--垂直|水平分表、表分区
一、前言数据库的数据量达到一定程度之后,为避免带来系统性能上的瓶颈。需要进行数据的处理,采用的手段是分区、分片、分库、分表。二、分片(类似分库)分片是把数据库横向扩展(Scale Out)到多个物理节点上的一种有效的方式,其主要目的是为突破单节点数据库服务器的 I/O 能力限制,解决数据库扩展性问题。Shard这个词的意思是“碎片”。如果将一个数据库当作一块大玻璃,将这块玻璃打碎,那么每一小块都称为数据库的碎片(DatabaseShard)。将整个数据库打碎的过程就叫做分片,可以翻译为分片。形式上,原创 2020-12-03 19:29:27 · 682 阅读 · 0 评论 -
mysql2--索引分类|创建|B+和其他数据结构
一、sql优化1、慢查询日志1)查看mysql是否开启慢查询日志show variables like ‘slow_query_log’;2)设置没有索引的记录到慢查询日志set global log_queries_not_using_indexes=on;3)查看超过多长时间的sql进行记录到慢查询日志show variables like 'long_query_time'4)开启慢查询日志set global slow_query_log=onmysql> show va原创 2020-12-03 19:28:42 · 195 阅读 · 0 评论 -
mysql1--优化十方面
MYSQL优化主要分为以下四大方面:设计:存储引擎,字段类型,范式与逆范式功能:索引,缓存,分区分表。架构:(主从复制,读写分离,负载均衡)。合理SQL:经验、执行计划。参考 https://www.cnblogs.com/sharpest/p/10390035.html一、存储引擎1、InnoDB存储引擎介绍Mysql版本>=5.5 默认的存储引擎,MySQL推荐使用的存储引擎。支持事务,行级锁定,外键约束。事务安全型存储引擎。更加注重数据的完整性和安全性。(1)存储格式数据,索原创 2020-12-01 15:13:53 · 168 阅读 · 0 评论