一. 简介 DQL:指数据库中的查询(select)操作. DML:指数据库中的插入(insert).更新(update).删除(delete)等行数据变更操作. DDL:指数据库中加列(add column).修改列(change column).创建索引(create index).删除索引(drop index).删除表(drop table).清理表(truncate table)等表结构定义操作. 经常有同学会碰到索引加不上,或者drop table卡住等DDL执行问题,很想和他们解释…
在处理访客信息更新是遇到了大并发的问题,low_priority,低优先级,可以让并发没那么占CPU,对于低配VPS来说,作用还是很大的.UPDATE [LOW_PRIORITY] tbl_name SET col_name1=expr1,col_name2=expr2,... mysql中update用low_priority让update不锁定表 MySQL允许你改变语句调度的优先级,它可以使来自多个客户端的查询更好地协作,这样单个客户端就不会由于锁定而等待很长时间.改变优先级还可以确保特定…
首先声明一下,我用的是Windows系统! 1.在Python中对mysql数据库进行操作首先要导入pymysql模块,默认情况下,Python中是没有安装这个模块的, 可以在Windows的命令行中用pip install pymysql来安装(注意要连网).除了pymysql模块外,还可以用其他模块. 2.在Python中数据库表的创建就不细说了,我习惯是在navicat中创建. 3.查找数据 (1)不带条件的查找 import pymysql conn = pymysql.connect(…
在一些公司中提交给测试团队的SQL脚本会划分为DDL.DML等,但这些概念到底是如何定义的呢? SQL(Structure Query Language)是数据库操作的的核心语言,接下来我们通过一张图来进行分析: DDL(Data Definition Languages)语句:即数据库定义语句,用来创建数据库中的表.索引.视图.存储过程.触发器等,常用的语句关键字有:CREATE,ALTER,DROP,TRUNCATE,COMMENT,RENAME. DML(Data Manipulation…
这期的文章主要是讲述写操作过程中涉及到的三个日志文件,看过前几期的话可能你或多或少已经有些了解了(或者从别的地方也了解过).比如整个写操作过程中用到的两阶段提交,又或者是操作过程中涉及到的日志文件,但是总体来说不是很系统更谈不上全面. 今天我们就来会会这三兄弟. 图注:思维导图 两阶段提交 这个名词你应该听到过很多次了,在这里再介绍下这位老朋友. 所谓的两阶段提交,从字面意思来看应该是有两个步骤来进行约束的.事实上也是如此.这两个步骤中的主角就是我们今天要讲的重要角色中的两位:binlog 和…
     为所有列插入数据 通常情况下,向数据表中插入数据应包含表中所有字段,也就是为表中所有字段添加数据,为表中所有字段添加数据有以下两种方式. 1.INSERT语句中指定所有字段名 使用INSERT语句列出表的所有字段可以向表中插入数据,语法格式如下所示. INSERT INTO 表名(字段名1,字段名2,……) VALUES(值1,值2,……); 以上示例中,“字段名1,字段名2”是数据表中的字段名称,“值1,值2”是对应字段需要添加的数据,每个值的顺序.类型必须与字段名对应. 首先,创建…
1 获取当前时间 now() select now(); +---------------------+ | now() | +---------------------+ | -- :: | +---------------------+ 2 日期转换函数.时间转换函数 2.1 MySQL Date/Time to Str,函数:date_format(date,format), time_format(time,format) mysql> select date_format('2008-…
#DDL /* 数据定义语言 库和表的管理 一.库的管理 创建.修改.删除 二.表的管理 创建.修改.删除 创建:create 修改:alter 删除:drop */ #一.库的管理 #1.库的创建 /* 语法: create database [if not exists]库名: */ #案例:创建库books CREATE DATABASE IF NOT EXISTS books; #2.库的修改 RENAME DATABASE books TO 新库名; #更改库的字符集 ALTER DA…
具体到操作流程: 当执行某个写操作的 SQL 时,引擎将这行数据更新到内存的同时把对应的操作记录到 redo log 里面,然后处于 prepare 状态.并把完成信息告知给执行器. 执行器生成对应操作的 binlog,并把 binlog 写入磁盘里.然后调用引擎的提交事务接口,变更 redo log 状态为 commit. ===>>><<<<==== 重做日志(redo log 位于存储引擎层的 redo log,它是用来记录在"数据页做了什么修改&…
悲观锁(Pessimistic Lock), 顾名思义,就是很悲观,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会block直到它拿到锁.传统的关系型数据库里边就用到了很多这种锁机制,比如行锁,表锁等,读锁,写锁等,都是在做操作之前先上锁. 乐观锁(Optimistic Lock), 顾名思义,就是很乐观,每次去拿数据的时候都认为别人不会修改,所以不会上锁,但是在更新的时候会判断一下在此期间别人有没有去更新这个数据,可以使用版本号等机制.乐观锁适用于…