mysql
文章平均质量分 92
0->1->
这个作者很懒,什么都没留下…
展开
-
高性能MySQL(第3版)笔记 1.4多版本并发控制
MVCC全称Multi-Version Concurrency Control,即多版本并发控制。MVCC是一种并发控制的方法,一般在数据库管理系统中,实现对数据库的并发访问,在编程语言中实现事务内存。可以认为MVCC是行级锁的一个变种,但是它在很多种情况下避免了加锁操作,因此开销更低。其他数据库(Oracle、PostgreSQL)等也都实现了MVCC,他们的实现机制不尽相同,因为MVCC没有一个统一的实现标准。虽然实现机制有所不同,但大都实现了非阻塞读操作,写操作也只锁定必要的行。实现原理MVC原创 2020-06-23 23:38:01 · 213 阅读 · 0 评论 -
高性能MySQL(第3版)笔记 1.3 事务
1.3 事务事务:一组原子性的SQL查询,如果数据库引擎能够成功地对数据库应用改组查询呢的全部语句,那么就执行该查询,如果其中任何一条执行失败,那么其他语句都不会执行。事务内的语句,要么全部执行成功,要么全部执行失败事务的四大特性:原子性(Atomicity):事务是一个不可分割的工作单位,事务中的操作要么都发生,要么都不发生。首先创建两张表并插入数据DROP TABLEIF EXISTS checking;CREATE TABLE checking(customer_id int(10原创 2020-06-22 00:06:33 · 2348 阅读 · 0 评论 -
高性能MySQL(第3版)笔记 1.2 并发控制
1.2.1 读写锁在处理并发读或者写时,可以通过实现一个由两种类型的锁组成锁系统来解决问题共享锁(shared lock), 也叫读锁(read lock)和排他锁(exclusive lock),也叫写锁(write lock)。读锁:共享,互不阻塞,多个客户在同一时刻可以同时读取同一个资源而互不干扰写锁:排他,会阻塞其他的写锁和读锁写锁比读锁由更高的优先级,因此一个写锁请求可能会被插入到读锁队列的前面。1.2.2 锁粒度锁粒度也就是锁的范围,分为表锁和行级锁表锁:MySQL最基本的锁策原创 2020-06-15 23:24:57 · 2189 阅读 · 0 评论 -
高性能MySQL(第3版)笔记 1.1 MySQL逻辑架构
一、MySQL服务器逻辑架构图(1.1)每个虚线框都是一层:第一层:最上层的服务器不是MySQL所独有的,大多数基于网络的客户端\服务器工具或者服务(链接处理、授权认证、安全等等)都有类似的系统第二层:大多数的MySQL的核心服务功能都在这一层,包括查询解析、分析、优化、缓存以及所有的内置函数(日期、时间、数学和加密函数等)。所有跨存储引擎的功能(存储过程、触发器、视图)都在这一层实现第三层包含了存储引擎。存储引擎负责MySQL中数据存储和提取。服务器通过API和存储引擎进行通信,这些接口屏原创 2020-06-15 22:25:31 · 212 阅读 · 0 评论 -
MySQL索引实践
1.什么是索引索引是一种特殊的数据结构,类似于图书的目录,它能够极大地提升数据库的查询效率。如果没有索引,那么在查询时必须扫描表中的所有记录才能找出符合条件的记录,这种全表扫描查询效率非常低。2.常见索引的种类索引是对数据库表中一列或多列的值进行排序的一种结构,使用索引可快速访问数据库表中的特定记录。索引种类描述普通索引最基本的索引,没有任何限制,仅加速查询唯一索引索引列的值必须唯一,但允许有空值主键索引一种特殊的唯一索引,不允许有空值。一般是在建表的同时自动创原创 2020-06-10 22:09:34 · 171 阅读 · 0 评论 -
MySQL explain的使用
1.explain的作用explain命令可以查看SQL语句的执行计划。当explain于SQL语句一起使用时, MySQL将显示来自优化器的有关语句执行计划的信息。2.实例首先创建两张表并插入数据DROP TABLEIF EXISTS students;CREATE TABLE students (id INT ( 10 ) UNSIGNED NOT NULL AUTO_INCREMENT,学号 INT ( 7 ) UNSIGNED NOT NULL,姓名 VARCHAR ( 20 )原创 2020-05-26 02:20:55 · 889 阅读 · 0 评论 -
MySQL慢查询日志
1.慢查询日志基本概念和用途MySQL慢查询日志用于记录MySQL数据库中响应时间超过指定阈值的语句。慢查询日志通常也被称之为慢日志,它不仅针对SELECT语句,INSERT、UPDATE、DELETE等语句,只要响应时间超过所设定阈值都会记录在慢查询日志中。2.如何开启慢查询日志查看是否开启了慢查询日志:SHOW VARIABLES LIKE '%slow%';结果:slow_query_log:慢查询日志是否开启,可以看出图中并未开启慢查询日志,我们用命令临时开启:SET GLOBAL原创 2020-05-20 01:21:32 · 185 阅读 · 0 评论 -
MySQL表连接
1.表连接定义表连接(JOIN)是在多个表之间通过一定的连接条件,使比阿奥之间发生关联,进而能从多个表之间获取数据。实例首先创建两张表,两张表都有学号列,并插入数据DROP TABLEIF EXISTS students;CREATE TABLE students (id INT ( 10 ) UNSIGNED NOT NULL AUTO_INCREMENT,学号 INT ( 7 ) UNSIGNED NOT NULL,姓名 VARCHAR ( 20 ) NOT NULL,PRIMAR原创 2020-05-19 01:14:10 · 222 阅读 · 0 评论 -
python用mysql建表的UTF8MB3、UTF8MB4警告
今天想练习下myslq的数据库索引,看的教程是https://www.cnblogs.com/chenshishuo/p/5030029.html,结果在创建数据库表的时候就遇到了一个警告。这是我的python.py# !/usr/bin/env python# -*- coding: utf-8 -*-"""@Author: P♂boy@License: (C) Copyright ...原创 2018-11-18 22:56:31 · 7847 阅读 · 4 评论