mysql
深寒色的猫丶
守正出奇,心底有光,不舍昼夜 - 袁杰
展开
-
mysql日志文件开启及详解:General_log 和 Binlog
背景: 周末归纳下mysql的日志文件,其中general_log在mysql入侵中已经用到过,binlog即将会用到。注:mysql版本为5.7.20General_log 详解1.介绍开启 general log 将所有到达MySQL Server的SQL语句记录下来。一般不会开启开功能,因为log的量会非常庞大。但个别情况下可能会临时的开一会儿general ...原创 2018-04-15 15:09:50 · 15406 阅读 · 1 评论 -
(mysql)replace into ...与insert into ... on duplicate key update 对比分析
背景: 我们对数据库操作时常常有这种需求:如果不存在该记录则新增,存在则更新! 传统的思路:先select判断是否存在,再选择insert或者update,这样的话步骤较多。 为了解决这种需求,mysql提供了两种常用的关键字方法:replace into 与 insert into … on duplicate key update,现在我们测试下这两种方法吧!一、replace ...原创 2018-05-31 00:50:40 · 4633 阅读 · 0 评论 -
整理测试count(1)、count(*)以及count(列)的区别
背景: 业务需要对多个数据库表进行count统计,很早以前就听一个同事说count(1)比count()要快,说count()要全表扫描而count(1)则不用…后来我百度过好像说这种说法是错误的,所以我一直还是用count(),今天在此详细总结并测试下这几者的区别(网上百度的太乱了)!*一、测试mysql版本:5.7.20 测试表:InnoDB 引擎CREATE TABL...原创 2018-06-22 00:36:30 · 1602 阅读 · 1 评论 -
多个单列索引和联合索引的区别详解
背景: 为了提高数据库效率,建索引是家常便饭;那么当查询条件为2个及以上时,我们是创建多个单列索引还是创建一个联合索引好呢?他们之间的区别是什么?哪个效率高呢?我在这里详细测试分析下。一、联合索引测试注:Mysql版本为 5.7.20创建测试表(表记录数为63188):CREATE TABLE `t_mobilesms_11` ( `id` bigint(20) NOT ...原创 2018-06-24 17:40:58 · 140560 阅读 · 93 评论 -
记一次Group by 查询时的ONLY_FULL_GROUP_BY错误以及后续
所用mysql版本为5.7.201.错误源头Error querying database. Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Expression #5 of SELECT list is not in GROUP BY clause and contains nona...原创 2018-03-07 11:12:11 · 35833 阅读 · 8 评论 -
Mysql max_allowed_packet自动重置为1024(黑客入侵?)
背景: 最近在腾讯云买了一台测试机,安装了mysql5.7.20作为测试数据库,谁知道一直发生这个错误:Caused by: com.mysql.jdbc.PacketTooBigException: Packet for query is too large (79968 > 1024). You can change this value on the server by set...原创 2018-03-27 15:39:05 · 5085 阅读 · 0 评论 -
Hive中使用 with as 优化SQL
背景: 当我们书写一些结构相对复杂的SQL语句时,可能某个子查询在多个层级多个地方存在重复使用的情况,这个时候我们可以使用 with as 语句将其独立出来,极大提高SQL可读性,简化SQL~ 注:目前 oracle、sql server、hive等均支持 with as 用法,但 mysql并不支持!一、介绍with as 也叫做子查询部分,首先定义一个sql片段,该sql片...原创 2018-07-31 23:29:06 · 71249 阅读 · 12 评论