mysql
MySQL是一种开源的关系型数据库管理系统。它是最常用的数据库管理系统之一,被广泛应用于各种Web应用程序的开发中。
MySQL具有以下特点:
1. 可扩展性:MySQL可以处理大量数据和高并发的操作,支持从小型应用到大型企业级应用的不同规模。
2. 数据安全性:MySQL提供了多层次的安全机制来保护数据的安全性,包括用户认证、访问控制和数据加密等。
3. 高性能:MySQL具有快速的读写操作,并且可以通过优化查询语句和索引来提高查询效率。
4. 多功能性:MySQL支持多种数据类型,包括文本、数字、日期和空间数据类型等。它还支持各种查询、事务处理和数据复制等功能。
5. 可靠性:MySQL具有高度可靠性和稳定性,能够保证数据的持久性和一致性。
MySQL的应用范围广泛,包括网站开发、电子商务、日志分析、数据仓库和企业级应用软件等。它与PHP、Java、C#等编程语言的结合使用非常方便,能够快速开发并管理各种类型的数据库应用。
-
如何解决mysql深分页问题
日常需求开发过程中,相信大家对于limit一定不会陌生,但是使用limit时,当偏移量(offset)非常大时,会发现查询效率越来越慢。一开始limit 2000时,可能200ms,就能查询出需要的到数据,但是当limit 4000 offset 100000时,会发现它的查询效率已经需要1S左右,…
-
mysql的碎片有哪些
MySQL 的几种碎片整理方案总结(解决delete大量数据后空间不释放的问题) 1.背景知识? 1.1 为什么会有碎片? MySQL 中 insert 与 update 都可能导致页分裂,这样就存在碎片。 对于大量的UPDATE,也会产生文件碎片化 , Innodb的最小物理存储分配单位是页(pa…
-
mysql事务的ACID特性及并发问题实例分析
一、事务的概念 一个事务是由一条或多条对数据库操作的SQL语句所组成的一个不可分割的单元,只有当事务中所有操作都正常执行完了,整个事务才会被提交给数据库,如果有部分事务处理失败,那么事务就要回滚到最初的状态,因此,事务要么全部执行成功,要么全部失败。 所以要记住事务几个基本概念,如下: 事务是一组S…
-
mysql流程控制之while、repeat、loop循环实例分析
前言 循环是一段在程序中只出现一次,但可能会连续运行多次的代码。 循环中的代码会运行特定的次数,或者是运行到特定条件成立时结束循环。 循环分类: while repeat loop 循环控制: leave 类似于 break,跳出,结束当前所在的循环 iterate类似于 continue,继续,结…
-
mysql中delete in子查询不走索引问题怎么解决
问题复现 MySQL版本是5.7,假设当前有两张表account和old_account,表结构如下: CREATE TABLE `old_account` ( `id` int(11) NOT NULL AUTO_INCREMENT COMMENT ‘主键Id’, `name` varchar(2…
-
mysql死锁怎么检测和避免
在我们使用锁的时候,有一个问题是需要注意和避免的,我们知道,排它锁有互斥的特性。一个事务或者说一个线程持有锁的时候,会阻止其他的线程获取锁,这个时候会造成阻塞等待,如果循环等待,会有可能造成死锁。 这个问题我们需要从几个方面来分析,一个是锁为什么不释放,第二个是被阻塞了怎么办,第三个死锁是怎么发生的…
-
mysql数据库线上如何修改表结构
一、MDL元数据锁 在修改表结构之前,先来看下可能存在的问题。 1、什么是MDL锁 MySQL有一个把锁,叫做MDL元数据锁,当对表修改的时候,会自动给表加上这把锁,也就是不需要自己显式使用。 当对表做增删改查的时候,加的是MDL读锁 当对表结构做变更修改的时候,加的是MDL写锁 读与读之间不互斥,…
-
mysql索引最左匹配原则是什么
准备 为了方面后续的说明,我们首先建立一个如下的表(MySQL5.7),表中共有5个字段(a、b、c、d、e),其中a为主键,有一个由b,c,d组成的联合索引,存储引擎为InnoDB,插入三条测试数据。强烈建议自己在MySQL中尝试本文的所有语句。 CREATE TABLE `test` ( `a`…
-
mysql乐观锁和悲观锁如何实现
锁分类 MySQL的中锁按照范围主要分为表锁、行锁和页面锁。其中myisam存储引擎只支持表锁,InnoDB不仅仅支持行锁,在一定程度上也支持表锁。按照行为可以分为共享锁(读锁)、排他锁(写锁)和意向锁。按照思想分为乐观锁和悲观锁。 表结构 下面的SQL语句是表的结构: CREATE TABLE `…
-
mysql的timestamp存在的时区问题怎么解决
简介 众所周知,mysql中有两个时间类型,timestamp与datetime,但当在网上搜索timestamp与datetime区别时,会发现网上有不少与时区有关的完全相反的结论,主要两种: timestamp没有时区问题,而datetime有时区问题,原因是timestamp是以UTC格式存储…