![](https://img-blog.csdnimg.cn/2019092715111047.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Mysql-数据库
文章平均质量分 89
Mysql-数据库
思静语
大道至简,行稳致远
展开
-
数据库连接池满问题
当数据库连接池满时,可能会导致新的数据库连接请求无法被处理,进而影响应用程序与数据库的交互。以下是针对数据库连接池满问题的详细分析和解决策略:问题分析连接泄漏:应用程序在使用完数据库连接后没有正确地关闭连接,导致连接一直处于占用状态,最终导致连接池满。连接数设置不合理:连接池的最大连接数设置过小,无法满足应用程序的需求,导致连接池满。数据库服务器负载过高:数据库服务器的负载过高,无法及时处理新的连接请求,进一步加剧连接池满的情况。原创 2024-07-01 21:28:18 · 761 阅读 · 0 评论 -
Mysql事务
首先,我们来讲下MVCC的流程,MVCC其实就是查询的时候,会去生成一个readView的class结构, 里面会保存一些事务ID数据,比如当前存活的事务ID有哪些,然后跟数据的事务ID进行比对,来决 定数据是否展示。如果检索条件没有索引,更新数据时会锁住整张表。MVCC就是一种乐观锁的机制,它通过对不同事务生成不同的快照版本,通过UNDO版本链进行管理并且在MVCC里面,规定了高版本能够看到低版本的事务变更,低版本看不到高版本的事务变更从而实现了不同事务之间的数据隔离,解决了幻读的问题。原创 2024-06-04 10:38:46 · 935 阅读 · 0 评论 -
分库分表方案
分库分表如果不按id查询的话,以上设定的方案都是根据id来查询的,当然这个业务可能不一样,总的一套系统肯定要按照id查询,先确定哪一张表,那么那一张表是做一个映射的,尤其是做分布式的,那么id是最准确的,如果你确定要查询其他字段,那么就要做一些kv映射,只能是这样。也就是要做数据迁移。定位查询id为15000的数据,首先根据范围定位是哪个分组,比如查询id为15000的数据是在分组1里边的,然后利用hash取模取表数最终结果来定位到哪个库,假设结果是到0号库,然后再根据0号库的范围来定位是最终的表。原创 2024-06-04 10:19:46 · 908 阅读 · 0 评论 -
分库分表详解
分库分表是数据库架构设计中的一种常见策略,尤其是在面对大规模数据和高并发场景时。这种策略通过将数据分散存储在多个数据库和表中,来提高系统的性能和可扩展性。分库分表是为了解决由于数据量过大而导致数据库性能降低的问题,通过将原来独立的数据库拆分成若干数据库组成,将数据大表拆分成若干数据表组成,使得单一数据库、单一数据表的数据量变小,从而达到提升数据库性能的目的。分库分表是提升数据库性能和扩展性的重要策略,但同时也带来了设计和维护上的复杂性。原创 2024-06-04 09:59:31 · 990 阅读 · 0 评论 -
Mysql详解
MySQL 是一种流行的关系型数据库管理系统 (RDBMS),它被广泛用于各种规模的应用程序和网站开发中。MySQL 提供了高性能、可靠性和易用性,同时具有开源的优势,因此备受开发者和企业的青睐。是一种开放源代码的关系型数据库管理系统MySQL数据库系统使用最常用的数据库管理语言–结构化查询语言(SQL)进行数据库管理。开源性:MySQL 是开源的,可以免费使用,并且其源代码可以被任何人查看、修改和分发。这使得 MySQL 成为了众多开发者和组织的首选数据库解决方案之一。原创 2024-06-01 16:09:42 · 1381 阅读 · 0 评论 -
数据库连接池
数据库连接池是一种用于管理数据库连接的技术,可以提高数据库访问的效率和性能。在Java中,有多种数据库连接池实现可供选择,MyBatis 并没有内置连接池,而是通过与其他连接池整合来管理数据库连接。Apache Commons DBCP(数据库连接池):这是一个开源的Java数据库连接池实现,由Apache软件基金会提供。它提供了一个可配置的、高性能的数据库连接池,可以用于管理数据库连接的创建、释放和重用。原创 2024-05-31 13:52:19 · 945 阅读 · 0 评论 -
MySQL主从复制&读写分离
MySQL主从复制和读写分离是一些常用的数据库优化和高可用性方案。主从复制(Master-Slave Replication):主从复制是一种数据库复制技术,通过该技术可以将一个MySQL数据库服务器(称为主服务器)上的数据同步到其他一个或多个MySQL数据库服务器(称为从服务器)上。主从复制的工作原理是主服务器将自己的更新操作记录在二进制日志中,然后从服务器连接到主服务器,获取这些更新操作并在自己的数据库上执行,从而保持数据的一致性。原创 2024-05-31 11:12:46 · 882 阅读 · 0 评论 -
JDBC详解
JDBC(Java Database Connectivity)是Java语言访问数据库的标准API。它提供了一种方法,使得Java应用程序能够与各种关系型数据库进行交互,包括连接数据库、发送查询和更新语句、获取查询结果等。JDBC API提供了一组接口和类,使开发人员能够编写数据库无关的代码,从而更容易地切换和管理不同类型的数据库。加载驱动程序:在使用JDBC之前,需要加载适当的数据库驱动程序,以便与特定的数据库进行通信。原创 2024-05-31 11:01:11 · 1134 阅读 · 0 评论 -
Mysql索引详解(索引分类)
MySQL索引是一种数据结构,用于提高查询效率和加快数据的检索速度。通过在指定的列上创建索引,MySQL可以更快地找到满足查询条件的数据,而不需要全表扫描。它可以加快数据库查询的速度,从而提高应用程序的性能。在MySQL中,索引用于快速查找、排序和过滤数据。索引类似于书本的目录,是存储引擎用于提高数据库表的访问速度的一种数据结构。在mysql内部,将热点数据,以B+树的形式将所有page页,进行组织成一定的数据结构,再用其配套的查找算法进行查找,叫做索引查询。原创 2024-04-23 16:15:01 · 1110 阅读 · 0 评论 -
Mysql优化
MYSQL优化主要分为以下四大方面:硬件及操作系统层面优化:设计:存储引擎,字段类型,范式与逆范式功能:索引,缓存,分区分表。架构:主从复制,读写分离,负载均衡。合理SQL。原创 2024-04-19 17:15:50 · 1023 阅读 · 0 评论 -
sql优化
索引并不是越多越好,索引固然可以提高相应的 select 的效率,但同时也降低insert 及 update的效率,因为 insert 或 update 时有可能会重建索引,所以怎样建索引需要慎重考虑,视具体情况而定。在流量比较大的场景中,可以增加从库来提高数据库的负载能力,从而提升数据库的总体性能。尽可能的使用 varchar/nvarchar 代替 char/nchar ,因为首先变长字段存储空间小,可以节省存储空间,其次对于查询来说,在一个相对较小的字段内搜索效率显然要高些。原创 2024-04-19 16:55:20 · 1238 阅读 · 0 评论 -
MySQL三大日志
一、什么样的字段适合创建索引1、表的主键、外键必须有索引;外键是唯一的,而且经常会用来查询2、数据量超过300的表应该有索引;3、经常与其他表进行连接的表,在连接字段上应该建立索引;经常连接查询,需要有索引4、经常出现在Where子句中的字段,加快判断速度,特别是大表的字段,应该建立索引,建立索引,一般用在select ……where f1 and f2 ,我们在f1或者f2上建立索引是没用的。只有两个使用联合索引才能有用5、经常用到排序的列上,因为索引已经排序。6、经常用在范围内搜索的列上创建原创 2020-07-06 16:06:14 · 79 阅读 · 1 评论 -
MySQL中InnoDB中的意向锁
在MySQL的InnoDB存储引擎中,意向锁是一种特殊类型的锁,用于指示事务将要在某一范围内的行上设置共享锁或排他锁。这有助于协调多个事务对数据行的访问。意向锁分为两种类型:意向共享锁(IS)和意向排他锁(IX)。当一个事务打算对某些行设置共享锁时,它会在表级别设置意向共享锁。同样,当一个事务打算对某些行设置排他锁时,它会在表级别设置意向排他锁。意向锁的存在有助于提高并发性能并减少死锁的可能性。这是因为其他事务在尝试对表中某些行设置锁之前,可以先检查表级别的意向锁,以确保它们不会产生冲突。原创 2023-11-09 11:35:29 · 280 阅读 · 0 评论 -
MySQL 索引结构采用 B+树原因
当更新的值如果来自一个子查询,则这些字段是可以合在一起写的,例update tb_county t set (t.prov_name, t.city_name, t.xs_mc) = (select t.prov_name, t.city_name, t.xs_mc...原创 2022-03-01 20:22:06 · 314 阅读 · 0 评论