随笔分类 - MySQL
1
摘要:一、首先创建一张测试表,随便插入一点测试数据: CREATE TABLE `test_index` ( `id` int(11) NOT NULL AUTO_INCREMENT, `no` int(11) NOT NULL DEFAULT '0' COMMENT '订单号,int型', `no_st
阅读全文
摘要:MySQL异常sql_mode=only_full_group_by 原因:在MySQL 5.7后MySQL默认开启了SQL_MODE严格模式,对数据进行严格校验。会报sql_mode=only_full_group_by错误说明写的SQL语句不严谨,对于group by聚合操作,select中的列
阅读全文
摘要:一、SUBSTRING_INDEX SUBSTRING_INDEX(str, delim, count) 根据 delim 符号分隔 str 字符串,并从第 count 分隔符截取,返回截取后的字符串。 str:待截取的字符串 delim:分隔符 count:索引,从第几个分隔符开始截取,如果 co
阅读全文
摘要:MySQL支持实现group_concat() 内部自定义排序: 实例: 新建一张表 reward,表中数据如下: SQL: SELECT uid, GROUP_CONCAT(money ORDER by money DESC) AS money_desc FROM reward GROUP BY
阅读全文
摘要:想要了解取值范围首先需要知道的是 bit 和 Byte 的概念 bit :位 二进制数系统中,位通常简写为 "b",也称为比特,每个二进制数字 0 或 1 就是一个位(bit)。位是表示信息的最小单位,其中 8 bit 就称为一个字节(Byte)。 Byte :字节 字节(Byte)是用于计量存储容
阅读全文
摘要:执行流程 如下图所示,我们可以看到当向 MySQL 发送一个请求时,MySQL 到底做了什么: 客户端发送一条査询给服务器。 服务器先检查査询缓存,如果命中了缓存,则立刻返回存储在缓存中的结果。否则进入下一阶段。 服务器端进行 SQL 解析、预处理,再由优化器生成对应的执行计划。 MySQL 根据优
阅读全文
摘要:一、MySQL创建触发器语法: CREATE TRIGGER trigger_name {BEFORE|AFTER} {DELETE|INSERT|UPDATE} ON table_name FOR EACH ROW BEGIN END; 语法说明: trigger_name:触发器名称。 {BEF
阅读全文
摘要:MySQL中有很多方法判断一个字符串中是否存在另一字符串,像比较常用的 like、in 这里就不多介绍了,今天主要介绍一下 find_in_set() 和 locate() 的使用。 一、find_in_set(str, strlist) find_in_set() 返回 strlist 中 str
阅读全文
摘要:假设有一个用户表 user,数据如下: 1、查询表中 uid 重复的数据 SELECT id, uid, name FROM USER WHERE uid IN (SELECT uid FROM USER GROUP BY uid HAVING COUNT(uid) > 1); 2、查询表中重复数据
阅读全文
摘要:一、内连接(INNER JOIN) 获取两个表中字段匹配关系的记录,需要两个表都满足条件的数据才会返回。如下图阴影部分所示区域。 实例:有一张表table_a,数据如下: 表table_b,数据如下: 内连接SQL(也可以省略INNER,直接用JOIN): SELECT a.aid, a.aname
阅读全文
摘要:一、事务的概念 事务就是一组原子性的SQL查询,或者说一个独立的工作单元。如果数据库引擎能够成功地对数据库应用该组查询的全部语句,那么就执行该组查询。如果其中有任何一条语句因为崩溃或其他原因无法执行,那么所有的语句都不会执行。也就是说,事务内的语句,要么全部执行成功,要么全部执行失败。 可以通过一个
阅读全文
摘要:一、开启慢查询日志首先需要了解四个参数: slow_query_log # 是否开启慢查询日志,默认OFF,开启则设置为 ON。 slow_query_log_file # 慢查询日志文件存储位置。 log_queries_not_using_indexes # 是否把没有使用到索引的SQL记录到日
阅读全文
摘要:在使用group_concat的过程中遇到个问题,这里记录一下:在MySQL中有个配置参数group_concat_max_len,它会限制使用group_concat返回的最大字符串长度,默认是1024。 查询group_concat_max_len大小: 修改group_concat_max_l
阅读全文
摘要:假设有一个表:reward(奖励表),表结构如下: CREATE TABLE test.reward ( id int(11) NOT NULL AUTO_INCREMENT, uid int(11) NOT NULL COMMENT '用户uid', money decimal(10, 2) NO
阅读全文
摘要:问题: 我们经常会使用到分页操作,这里有个问题,在偏移量非常大的时候,它会导致MySQL扫描大量不需要的行然后再抛弃掉。如: 上述这条SQL语句需要查询10020条记录然后只返回最后20条。前面的10000条记录都将被抛弃,这样代价非常高。 方法一、延迟关联 优化此类分类查询的一个最简单的办法就是尽
阅读全文
摘要:1、使用limit 当不需要取出全部数据时,在查询后面加上limit限制。 2、select * 每次看到select * 的时候都需要用怀疑的眼光审视,是不是真的需要返回全部的列。 3、重复查询相同的数据 有时可能会重复执行相同的查询,比如在用户评论的地方需要查询用户头像url,如果用户多次评论,
阅读全文
摘要:索引是存储引擎用于快速找到记录的一种数据结构。索引优化应该是对查询性能优化最有效的手段了。索引能够轻易将查询性能提高几个数量级,"最优"的索引有时比一个"好的"索引性能要好两个数量级。 索引可以包含一个(单列索引)或多个列(组合索引)的值。 想要使用组合索引首先要了解一个原则:最左前缀原则。如果索引
阅读全文
摘要:前段时间看了《高性能MySQL》中的选择优化的数据类型,这里主要是做一下笔记。 首先数据选择有几个简单原则: 更小的通常更好。一般情况下,应该尽量使用可以正确存储数据的最小数据类型。例如只需要存 0~200,tinyint unsigned 更好。更小的数据类型通常更快,因为它们占用更少的磁盘、内存
阅读全文
摘要:MySQL时间戳与日期格式的相互转换,PHP时间戳与日期格式的相互转换 MySQL: 获取当前时间 时间日期格式转换成时间戳格式,UNIX_TIMESTAMP() 时间戳格式转换成时间日期格式,FROM_UNIXTIME() PHP: 获取当前时间戳 时间戳格式转换成时间日期格式 时间日期格式转换成
阅读全文
摘要:表结构: CREATE TABLE test.testsort ( id int(11) NOT NULL AUTO_INCREMENT, uid int(11) DEFAULT 0 COMMENT '用户id', score decimal(10, 2) DEFAULT 0.00 COMMENT
阅读全文
1

浙公网安备 33010602011771号