mysql
文章平均质量分 77
沉墨的夜
淑女靠修养,少女靠打扮,女人靠气质,而我靠内涵
展开
-
mysql数据库索引介绍
B-树索引(B-Tree Index) B-树索引是一种常见的数据库索引类型,使用的数据结构是B-树。除了以上介绍的索引类型,还有很多其他类型的索引,如空间索引(Spatial Index)、哈希索引(Hash Index)等,不同的索引类型适用于不同的场景和需求。索引的数量:建立过多的索引会占用过多的磁盘空间,并且可能会影响插入、更新和删除操作的性能,因为每次修改操作都需要更新索引。索引的长度:索引字段的长度会影响索引的性能,如果索引字段过长,会占用更多的磁盘空间,而且查询时也需要更多的IO操作。原创 2023-02-21 21:12:33 · 177 阅读 · 0 评论 -
数据库事务特性及隔离级别
例如,如果在一个银行转账的事务中,从一个账户中扣除了钱,但是在将钱转入另一个账户时出现了错误,那么这个事务就应该回滚,即回退到事务开始之前的状态,确保不会出现一个账户扣除了钱而另一个账户并没有收到相应的转账的情况。幻读与不可重复读的区别在于,不可重复读是指一个事务读取同一数据行两次,发现数据已经被其他事务修改了,而幻读是指一个事务读取同一数据范围两次,发现范围内的数据行数量已经发生了变化。例如,如果一个表的某个字段要求是唯一的,那么在一个事务中插入两条具有相同值的数据时,就会违反这个约束条件。原创 2023-02-21 21:36:52 · 101 阅读 · 0 评论 -
MYSQL悲观锁及乐观锁
如果在执行更新操作之前,其他事务修改了该用户的余额值,那么执行该更新语句时不会更新任何数据。举个例子,假设有一个银行转账的业务场景,其中涉及到两个账户的金额操作,为了避免数据冲突和并发问题,可以采用悲观锁来实现。在这个例子中,通过LOCK TABLES语句将整个订单表加锁,确保其他事务无法对其进行修改,然后执行更新操作,最后使用UNLOCK TABLES语句释放锁。需要注意的是,悲观锁机制在实现上通常需要使用到数据库的锁机制,因此在高并发场景下可能会导致性能瓶颈和死锁问题,所以需要谨慎使用。原创 2023-02-21 21:50:07 · 1869 阅读 · 2 评论 -
MYSQL的日志文件及主从同步
Redo Log 采用循环写入的方式,当 Redo Log 文件写满时,MySQL 会将 Redo Log 的内容写入磁盘,并重新开启一个新的 Redo Log 文件。Undo Log 也采用循环写入的方式,当 Undo Log 文件写满时,MySQL 会将 Undo Log 的内容写入磁盘,并重新开启一个新的 Undo Log 文件。Redo Log 记录了修改操作,以便 MySQL 在异常重启时可以恢复数据,而 Undo Log 则用于记录事务的撤销操作,以便在事务回滚时可以恢复原始数据。原创 2023-02-21 22:03:17 · 520 阅读 · 0 评论 -
MYSQL数据库连接池及常见参数调优
(1)查询缓存(query_cache_size):MySQL 可以将查询的结果缓存起来,下次相同的查询就可以直接从缓存中获取,一般设置为物理内存的 10%。(1)缓冲池大小(innodb_buffer_pool_size):InnoDB 存储引擎缓存的数据和索引的大小,一般设置为物理内存的 60%-80%。(4)查询缓存大小(query_cache_size):MySQL 可以将查询的结果缓存起来,下次相同的查询就可以直接从缓存中获取。(2)错误日志(log_error):记录数据库错误日志。原创 2023-02-21 22:19:52 · 8108 阅读 · 1 评论