mysql
文章平均质量分 79
Kindle_code
这个作者很懒,什么都没留下…
展开
-
MYSQL系列之 锁与死锁
MySQL 里面的锁大致可以分成全局锁、表级锁和行锁三类全局锁MySQL 提供了一个加全局读锁的方法,命令是 Flush tables with read lock (FTWRL)。当你需要让整个库处于只读状态的时候,可以使用这个命令,之后其他线程的以下语句会被阻塞:数据更新语句(数据的增删改)、数据定义语句(包括建表、修改表结构等)和更新类事务的提交语句。风险:1.如果在主库备份,在备份期间不能更新,业务停摆2.如果在从库备份,备份期间不能执行主库同步的binlog,导致主从延迟可重复读的隔原创 2020-08-03 23:27:31 · 348 阅读 · 0 评论 -
MYSQL系列之 事务
事务的特性ACID: Atomicity、Consistency、Isolation、Durability,即原子性、一致性、隔离性、持久性)事务开启方式:1、显式启动事务语句, begin 或 start transaction。配套的提交语句是 commit,回滚语句是 rollback。2、set autocommit=0,这个命令会将这个线程的自动提交关掉。意味着如果你只执行一个 select 语句,这个事务就启动了,而且并不会自动提交。这个事务持续存在直到你主动执行 commit 或 ro原创 2020-08-03 18:12:10 · 287 阅读 · 0 评论 -
MYSQL系列之 索引的概念
索引的常见模型:1、哈希表,以key-value存储的数据结构。同样的哈希用链表存储(类hashmap)优点: 插入很快缺点: 链表非有序查询会很慢。范围查询遍历整个数据库2、有序数组,优点:等值查询(二分)、范围查询性能非常优秀缺点:二叉搜索树维持有序需要log(N)、大量数据会访问多个数据块,访问会变慢3、 InnoDB索引模型(B+): 每一个索引在InnoDB中,对应一颗B+树索引存储结构create table T( id int primary key,原创 2020-08-03 14:47:39 · 202 阅读 · 0 评论 -
MYSQL系列之 redolog 和 binlog
上一篇中已经介绍过redo log的基本概念 MYSQL系列之 change buffer 和 redo logbinlogMySQL整体分为两块:Server层,主要MySQL功能层面的事情,引擎层,负责存储相关。redo log是InnoDB特有的日志,Server有自己的日志,称为binlog为什么有两份日志:MySQL自带引擎不具有crash-safe能力,binlog只是用于归档,InnoDB使用redolog实现此功能redolog 与 binlog 区别1、redo lo原创 2020-08-03 13:29:22 · 186 阅读 · 0 评论 -
MYSQL系列之 change buffer 和 redo log
读丁奇大佬课程笔记与思考 课程链接WAL技术(Write-Ahead Logging) 先写日志,再写磁盘:当有一条记录需要更新的时候,InnoDB 引擎就会先把记录写到 redo log(粉板)里面,并更新内存,这个时候更新就算完成了。同时,InnoDB 引擎会在适当的时候,将这个操作记录更新到磁盘里面,而这个更新往往是在系统比较空闲的时候做。刚刚update的语句还在缓存中未持久化磁盘,此时select是直接读取内存redo logInnoDB的redo log固定大小,比如可配置一组原创 2020-08-03 13:20:26 · 3080 阅读 · 2 评论 -
mysql删除重复数据,并保留一条
因为系统bug在对所在店铺的会员进行屏蔽的时候没有进行查重操作,导致在屏蔽表中出现了重复的数据,所以需要删除此表中姓名重复的数据,并保留其中的一条。模拟数据如下图: 第一条sql :delete from t_black_list where sellerId = 120055122 and names in ( select names from t_black_list wh原创 2018-01-18 15:29:27 · 3055 阅读 · 0 评论 -
mysql 计算前多少天 sql语句
语法 DATE_SUB(date,INTERVAL expr type) date: 参数是合法的日期表达式。expr 参数是您希望添加的时间间隔。type 参数可以是下列值:MICROSECONDSECONDMINUTEHOURDAYWEEKMONTHQUARTERYEARSECOND_MICROSECONDMINUTE_MICROSECONDMINUTE_原创 2017-12-14 16:38:23 · 1343 阅读 · 0 评论 -
ubuntu 安装mysql
只要三个语句: sudo apt-get install mysql-server apt-get isntall mysql-client sudo apt-get install libmysqlclient-dev 安装过程中会输入Mysql登录密码,安装完毕后,输入:mysql -u root -p-u 表示选择登陆的用户名, -p 表示登陆的用户密码,上面命令输入原创 2016-04-28 15:57:46 · 427 阅读 · 0 评论 -
window打开mysql命令行模式
方法一: 1.在程序的选项中找到它: 2.打开输入密码就可以操作mysql数据库了: 方法二 1.找到mysql安装目录下的这个文件,并进入它的bin文件夹: 2。系统操作:运行-cmd 并切换到上一步的bin目录下: 3.运行如下命令,并输入密码:原创 2016-03-25 09:28:20 · 6783 阅读 · 0 评论 -
mysql 数据库 如何获取刚刚插入的自增长的id号
在MySQL中,使用auto_increment类型的id字段作为表的主键,并用它作为其他表的外键,形成“主从表结构”,这是数据库设计中常见的用法。但是在具体生成id的时候,我们的操作顺序一般是:先在主表中插入记录,然后获得自动生成的id,以它为基础插入从表的记录。这里面有个困难,就是插入主表记录后,如何获得它对应的id。通常的做法,是通过“select max(id) from tablenam转载 2016-01-17 14:41:32 · 2507 阅读 · 0 评论 -
CSDN-markdown编辑器的使用
之前出现过,删掉了,后面写博客就没有参考了。。。。所以存下来。原来html使可以在这里用的= =Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl + Q插入链接 Ctr原创 2015-10-31 10:55:51 · 858 阅读 · 0 评论