
MySQL学习笔记
作者: Grey说明注:本文中的SQL语句如果用到了特定方言,都是基于MySQL数据库。关于DDLDDL 的英文全称是 Data Definition Language,中文是数据定义语言。它定义了数据库的结构和数据表的结构。在 DDL 中,我们常用的功能是增删改,分别对应的命令是 CREATE、DROP 和 ALTER。需要注意的是:在执行 DDL 的时候...
2024-01-10
MySQL基础笔记
创建数据库CREATE DATABASE database_name;create database mysql_test;删除数据库DROP DATABASE database_name;> drop database mysql_test;数据类型完整数据类型请参考MySQL 数据类型。MySQL支持所有标准SQL数值数据类型,所以数据类型有很多,这里介绍几个常用的数值类型类型大小范围(有符号)范围(无符号)用途...
2024-01-10
MySQL实战学习(三)
有序数组搜索树哈希表哈希表是一种以键 - 值(key-value)存储数据的结构,我们只要输入待查找的值即 key,就可以找到其对应的值即 Value。优点:做数据新增时,索引的建立会比较快。适用于等值查询的场景。缺点:在进行数据区间查找时,会比较慢。有序数组由数组的特点可以知道,有序...
2024-01-10
MySQL学习笔记(五)
mysqldump 与 --set-gtid-purged 设置(1) mysqldumpThe mysqldump client utility performs logical backups, producing a set of SQL statements that can be executed to reproduce the original database object definitions and table data. It dumps one or more MySQL dat...
2024-01-10
MYSQL存储引擎
存储引擎InnoDB (1) InnoDB给MySQL提供了具有提交、回滚和崩溃恢复能力的事务安全(ACID兼容)存储引擎。InnoDB锁定在行级并且也在SELECT语句中提供一个类似Oracle的非锁定读。这些功能增加了多用户部署和性能。在SQL查询中,可以自由地将InnoDB 类型的表与其他MySQL的表的类型混合起来,甚至在同一个查...
2024-01-10
MySQL死锁记录
今天线上环境偶现了一个 Deadlock found when trying to get lock; try restarting transaction 的报错,排查了一下,下面先模拟一下操作再说下排查流程模拟操作数据库脚本准备CREATE TABLE t (i INT) ENGINE = INNODB;INSERT INTO t (i) VALUES(1);A 客户端执行:START TRANSACTION;SELECT * FROM t WHERE i = 1 LOCK IN SHARE MODE;...
2024-01-10
MYSQL声明变量
我不明白这个脚本有什么问题BEGINDECLARE crs INT DEFAULT 0;WHILE crs < 10 DOINSERT INTO `continent`(`name`) VALUES ('cont'+crs)SET crs = crs + 1;END WHILE;END;我希望它在表中插入10个值,但是第二行有错误。回答:MySQL不支持执行存储过程代码的匿名块。您需要创建一个包含该代码的存储过程,然后调用它。另外,您在...
2024-01-10
MySQL学习笔记(25):常见问题
本文更新于2020-05-04,使用MySQL 5.7,操作系统为Deepin 15.4。目录忘记roo密码修改密码MyISAM存储引擎的表损坏数据目录磁盘空间不足的问题mysql.sock丢失后如何连接数据库访问内网数据库忘记roo密码使用mysqld_safe --skip-grant-tables跳过权限系统启动服务。不使用账号密码,直接使用mysql登录。使用UPDATE mysql.u...
2024-01-10
MySQL学习笔记(24):权限与安全
本文更新于2020-05-03,使用MySQL 5.7,操作系统为Deepin 15.4。目录权限安全操作系统相关的安全问题数据库相关的安全问题数据库安全设置选项权限权限存取需要用到mysql库中user、db、host、tables_priv、columns_prvi这几个权限表。列分为4个部分:用户列、权限列、安全列、资源控制列。权限列又分为普通权限...
2024-01-10
在MySQL
返回最后匹配的行我有这个表在MySQLid | qty_from | qty_to | p_id | price -------------------------------------- 1 | 1 | 10 | 4 | 1000 -------------------------------------- 2 | 11 | 20 | 4 | 2000 -------------------------------------- 3 | 1 | 10 | 5 | 500 --------------...
2024-01-10
MySQL篇
2、Mysql 的技术特点是什么? Mysql 数据库软件是一个客户端或服务器系统,其中包括:支持各种客户端程序和库的多 线程 SQL 服务器、不同的后端、广泛的应用程序编程接口和管理工具。 3、Heap 表是什么? HEAP 表存在于内存中,用于临时高速存...
2024-01-10
55道MySQL基础题
1.一张表,里面有 ID 自增主键,当 insert 了 17 条记录之后, 删除了第 15, 16, 17 条记录,再把 Mysql 重启,再 insert 一条记 录,这条记录的 ID 是 18 还是 15 ?1.如果表的类型是 MyISAM , 那么是 18。因为 MyISAM 表会把自增主键的最大 ID 记录到数据文件里,重启 MySQL自增主键的最大 ID 也不会丢失。2.如果表的类...
2024-01-10
MySQL查询优化的5个实用技巧
本文总结分析了MySQL查询优化的技巧。分享给大家供大家参考,具体如下:熟悉SQL语句的人都清楚,如果要对一个任务进行操作的话,SQL语句可以有很多种相关写法,但是不同的写法查询的性能可能会有天壤之别。本文列举出五个MySQL查询优化的方法,当然,优化的方法还有很多。1、优化数据类型MyS...
2024-01-10
MySQL死锁
https://dev.mysql.com/doc/refman/5.7/en/innodb-deadlocks.html什么是mysql的死锁?A deadlock is a situation where different transactions are unable to proceed because each holds a lock that the other needs. Because both transactions are waiting for a resource to be...
2024-01-10
MySQL视图
视图的概念视图是一张虚表,将查询结果集保存起来,作为视图使用。实际存在的表叫作基本表。 视图的作用安全性。grant授权用户只操作视图、只读,可以保护基本表中的数据。提高查询性能。视图只是基本表的一部分,查视图比查全表快。尤其是多表查询的时候,查视图一张表比连接多...
2024-01-10
MySQL管理和实用程序
让我们看一下MySQL中的管理程序和实用程序,并了解如何使用它们-ibd2sdi它是从InnoDB表空间文件中提取序列化字典信息(SDI)的实用程序。所有持久性InnoDB表空间文件中都存在SDI数据。ibd2sdi可以在运行时或服务器离线时使用。校验和它打印InnoDB文件的校验和。它读取一个InnoDB表空间文件,计算每个页面的...
2024-01-10
MySQL必知必会120章读书笔记
MySQL备忘目录目录使用MySQL检索数据排序检索数据过滤数据数据过滤用通配符进行过滤用正则表达式进行搜索创建计算字段使用数据处理函数数值处理函数汇总数据分组数据使用子查询作为计算字段使用子查询联结表创建高级联结组合查询全文本搜索插入数据更新和删除数据使用MySQLmysql -u<usr> -p -h<h...
2024-01-10
MySQL学习笔记(12):触发器
本文更新于2019-06-23,使用MySQL 5.7,操作系统为Deepin 15.4。目录SQL语句示例SQL语句为了便于描述,此处将创建触发器的DDL复述一次,其已于“SQL”章节描述。CREATE TRIGGER triggername BEFORE|AFTER INSERT|UPDATE|DELETEON tablename FOR EACH ROWstatement_list在statement_list中使用别名OLD和NEW来引用触发器中发生变化的旧记录...
2024-01-10
记一次MySQL的优化案例
一 背景 有赞的每个OLTP数据库实例上会设置一个sql-killer进程用于kill 掉执行时间超过一定阈值的sql。下午开发接收到sql被kill的报错,一起帮助开发排查,本文介绍该案例。二 场景分析表结构:CREATE TABLE `xxx_info` ( `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT 'id', `user_id` bigint(20) unsigned NOT ...
2024-01-10
MYSQL通过升序和降序排序
我有一个带有产品的mysql表。这些产品具有类别ID和名称。我想做的是按类别ID顺序降序排列,然后按产品名称升序排列。SELECT * FROM `products` ORDER BY `products`.`product_category_id`,`naam` DESC我想要的是SELECT * FROM `products` ORDER BY `products`.`product_category_id`,`naam` DESC,ASC不幸的是,这是行不通的。甚至可以在mysql...
2024-01-10
MySQL优化(4):查询缓存
查询缓存:MySQL提供的数据缓存QueryCache,用于缓存SELECT查询的结果默认不开启,需要在配置文件中开启缓存(my.ini/my.cnf)在[mysqld]段中,修改query_cache_type完成配置:0:关闭1:开启,但是默认缓存,需要增加sql-no-cache提示,放弃缓存(自动全部存,手动设置哪些不存)2:开启,但是默认不缓存,...
2024-01-10
MYSQL大量写入问题优化详解
摘要:大家提到Mysql的性能优化都是注重于优化sql以及索引来提升查询性能,大多数产品或者网站面临的更多的高并发数据读取问题。然而在大量写入数据场景该如何优化呢?今天这里主要给大家介绍,在有大量写入的场景,进行优化的方案。总的来说MYSQL数据库写入性能主要受限于数据库自身的配...
2024-01-10
赞!7000字学习笔记,一天搞定MySQL
MySQL数据库简介MySQL近两年一直稳居第二,随时有可能超过Oracle计晋升为第一名,因为MySQL的性能一直在被优化,同时安全机制也是逐渐成熟,更重要的是开源免费的。MySQL是一种关系数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提...
2024-01-10
让MySQL为我们记录执行流程G
让MySQL为我们记录执行流程我们可以开启profiling,让MySQL为我们记录SQL语句的执行流程查看profiling参数shell > select @@profiling;进行更改shell > set profiling = 1;执行语句select * from employees limit 100;查看该语句执行流程show profile;分别是启动权限检查打开表初始化表锁系统优化查询统计优化...
2024-01-10
MYSQL CONCAT最大长度
在这篇文章之后:关于比赛的帖子我的问题是我有很多行CONCAT成一行。例如,如果我有10行,字符串约50个字符,我的查询将只显示6-7行或类似的内容。我在堆栈和Google中进行搜索,发现可以通过以下命令更改CONCAT最大长度:SETgroup_concat_max_len := @@max_allowed_packet。我做错了什么? 当我SHOW VARIABLES LIKE'gro...
2024-01-10
