随笔分类 - mysql
摘要:刷网站的时候,我们经常会遇到需要分页查询的场景。 比如下图红框里的翻页功能。 我们很容易能联想到可以用mysql实现。 假设我们的建表sql是这样的 mysql建表sql 建表sql大家也不用扣细节,只需要知道id是主键,并且在user_name建了个非主键索引就够了,其他都不重要。 为了实现分页。
阅读全文
摘要:建表: CREATE TABLE `table1` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(60) DEFAULT NULL, `age` varchar(200) DEFAULT NULL, `sponsor_id` varch
阅读全文
摘要:前言:在mysql中设计表的时候,mysql官方推荐不要使用uuid或者不连续不重复的雪花id(long形且唯一),而是推荐连续自增的主键id,官方的推荐是auto_increment,那么为什么不建议采用uuid,使用uuid究竟有什么坏处?本篇博客我们就来分析这个问题,探讨一下内部的原因。 本篇
阅读全文
摘要:方法1: 直接使用数据库提供的SQL语句 语句样式: MySQL中,可用如下方法: SELECT * FROM 表名称 LIMIT M,N 适应场景: 适用于数据量较少的情况(元组百/千级) 原因/缺点: 全表扫描,速度会很慢 且 有的数据库结果集返回不稳定(如某次返回1,2,3,另外的一次返回2,
阅读全文
摘要:目录 SQL基础知识整理: 常见的SQL面试题:经典50题 三、50道面试题 2.汇总统计分组分析 3.复杂查询 sql面试题:topN问题 4.多表查询 【面试题类型总结】这类题目属于行列如何互换,解题思路如下: 其他面试题: SQL基础知识整理: select 查询结果 如: [学号,平均成
阅读全文
摘要:记得去年我在往MySQL存入emoji表情😲😳时,一直出错,无法导入。后来找到办法 -- 通过把 utf8 改成 utf8mb4 就可以了,并没有深究。 一年后,我看到一篇文章讲到emoji文字占4个字节,通常要用utf-8去接收才行,其他编码可能会出错。我突然想到去年操作MySQL把utf8改
阅读全文
摘要:一、问题背景 现网出现慢查询,在500万数量级的情况下,单表查询速度在30多秒,需要对sql进行优化,sql如下: 我在测试环境构造了500万条数据,模拟了这个慢查询。 简单来说,就是查询一定条件下,都有哪些用户的。很简单的sql,可以看到,查询耗时为37秒。 说一下app_account字段的分布
阅读全文
摘要:35 个 Mysql 常见的小问题,moon 浓缩成了精华,祝大家卷的愉快~ 1.说一说三大范式 2.MyISAM 与 InnoDB 的区别是什么? 3.为什么推荐使用自增 id 作为主键? 4.一条查询语句是怎么执行的? 5.使用 Innodb 的情况下,一条更新语句是怎么执行的? 6.Innod
阅读全文
摘要:作者:编码砖家 https://www.cnblogs.com/xiaoyangjia/p/11267191.html 文章目录: MySQL 性能 最大数据量 最大并发数 查询耗时 0.5 秒 实施原则 数据表设计 数据类型 避免空值 text 类型 索引优化 索引分类 优化原则 SQL 优化 分
阅读全文
摘要:当MySQL单表记录数过大时,增删改查性能都会急剧下降,可以参考以下步骤来优化: 单表优化 除非单表数据未来会一直不断上涨,否则不要一开始就考虑拆分,拆分会带来逻辑、部署、运维的各种复杂度,一般以整型值为主的表在千万级以下,字符串为主的表在五百万以下是没有太大问题的。而事实上很多时候MySQL单表的
阅读全文
摘要:MySQL 事务隔离级别 参考:https://mp.weixin.qq.com/s/eTbWDz8NiM8L8BbIrNiLHQ 1. 理论 MySQL 中事务的隔离级别一共分为四种,分别如下: 序列化(SERIALIZABLE) 可重复读(REPEATABLE READ) 提交读(READ CO
阅读全文
摘要:UPDATE [要更新的表名] [别名] INNER JOIN [关联的表名] [关联的别名] ON [关联条件] SET [要更新的字段] = [字段值] WHERE [限制条件的列] = [限制条件] 例子 UPDATE UPDATE_TABLE_SOURCE UTS INNER JOIN (
阅读全文
摘要:两表的关联字段类型不一致,导致索引失效。 可以用SHOW FULL COLUMNS FROM 表名查看表结构,主要看Collation这一列,如果俩表的关联的字段的排序规则不一致,会导致索引失效。 可以通过工具修改字符集和排序规则 索引不会包含有NULL值的列,只要列中包含有NULL值都将不会被包含
阅读全文
摘要:一.EXPLAIN查看SQL执行计划 EXPLAIN语句解析 expain解析出来的信息有10列,分别是id、select_type、table、type、possible_keys、key、key_len、ref、rows、Extra id:选择标识符 select_type:表示查询的类型。 t
阅读全文
摘要:一.含义: 索引是一种特殊的文件(InnoDB数据表上的索引是表空间的一个组成部分),它们包含着对数据表里所有记录的引用指针。更通俗的说,数据库索引好比是一本书前面的目录,能加快数据库的查询速度。 索引分为聚簇索引和非聚簇索引两种,聚簇索引是按照数据存放的物理位置为顺序的,而非聚簇索引就不一样了;聚
阅读全文
摘要:含义:理解成一张虚拟的表,用法基本和表一样,多用于查询,视图的增删改会影响原始表的数据。 创建视图的语法: create [or replace] view view_name As select_statement [with|cascaded|local|check option] 修改视图的语
阅读全文
摘要:#常见的数据类型 /* 数值型: 整型 小数: 定点数 浮点数 字符型: 较短的文本:char、varchar 较长的文本:text、blob(较长的二进制数据) 日期型: */ #一、整型 /* 分类: tinyint、smallint、mediumint、int/integer、bigint 1
阅读全文
摘要:含义:一种限制,用于限制表中的数据,为了保证表中的数据的准确和可靠性 分类:六大约束 NOT NULL:非空,用于保证该字段的值不能为空 非空约束用于确保当前列的值不为空值,非空约束只能出现在表对象的列上。Null类型特征: 所有的类型的值都可以是null,包括int、float等数据类型 空字符串
阅读全文
摘要:#DDL /* 数据定义语言 库和表的管理 一、库的管理 创建、修改、删除 二、表的管理 创建、修改、删除 创建: create 修改: alter 删除: drop */ #一、库的管理 #1、库的创建 /* 语法: create database [if not exists]库名; */ #案
阅读全文
摘要:#DML语言 /* 数据操作语言: 插入:insert 修改:update 删除:delete */ #一、插入语句 #方式一:经典的插入 /* 语法: insert into 表名(列名,...) values(值1,...); */ SELECT * FROM beauty; #1.插入的值的类
阅读全文