【MySQL】日常小技巧汇总,更新中……
- 创建表时修改自增主键,添加
AUTO_INCREMENT=<Number>,例如:
CREATE TABLE `table_name` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增主键',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=<Number> DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
- 建表后修改自增主键:
ALTER TABLE `table_name` AUTO_INCREMENT = 2;
- 已有的表新增自增主键字段(id):
ALTER TABLE `table_name` ADD COLUMN id BIGINT(20) UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT FIRST
- 修改表字段定义
ALTER TABLE `table_name`
CHANGE COLUMN `column1` `column1` VARCHAR(127) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '姓名';
- 清除表数据
TRUNCATE TABLE `table_name`;
PS: 之前没这么清理过数据,速度贼快,酸爽!
- 增加唯一约束
ALTER TABLE `table_name` ADD unique(`column1`, `column2`);
- UPDATE 中有 SELECT 子查询
-- 定义变量,名字 a 可修改,用于查询记录位于第几行
SET @a = 0;
UPDATE user_info x, (
SELECT year_name, open_id, @a := @a + 1 AS rank
FROM user_info
WHERE year_name = 'name'
ORDER BY vote_count DESC, update_time ASC
) tmp
SET x.rank = tmp.rank
WHERE x.year_name = tmp.year_name
AND x.open_id = tmp.open_id
备注:这条语句的目的是定时刷新
user_info表中的 rank 字段,刚开始用的INSERT ON DUPLICATE KEY操作的,之后老大说那样有问题,于是就思索如何优化,经测试这样写可以的。
PS: 之前没写过在UPDATE中使用SELECT子查询,因此记录。
- 查看事务状态
SELECT * FROM information_schema.INNODB_TRX;
- 查看表的状态
SHOW TABLE STATUS;
- 查看 redo log 和 binlog 状态
SHOW VARIABLES LIKE 'innodb_flush_log_at_trx_commit';
SHOW VARIABLES LIKE 'sync_binlog';
PS: 二者值都建议设置为 1.
- 长事务查询
-- 例如,大于 60 秒的
SELECT *
FROM information_schema.innodb_trx
WHERE TIME_TO_SEC(timediff(now(), trx_started)) > 60
【MySQL】日常小技巧汇总,更新中……的更多相关文章
- Ubuntu小点汇总,更新中...
转自:http://blog.csdn.net/zxz_tsgx/article/details/39713627 昨天重装了Ubuntu14.04 64位版,又被一些基础操作/设置给搞怕了,以前安装 ...
- Mysql注入小tips --持续更新中
学习Web安全好几年了,接触最多的是Sql注入,一直最不熟悉的也是Sql注入.OWASP中,Sql注入危害绝对是Top1.花了一点时间研究了下Mysql类型的注入. 文章中的tips将会持续更新,先说 ...
- linux常用小技巧(持续更新中)
一.设置固定ip地址1.config查看用的是哪一个网卡这是假设用的是eth12.修改dns地址vim /etc/resolv.confsearch 域名地址nameserver 192.168.3. ...
- fastadmin 后台管理框架使用技巧(持续更新中)
fastadmin 后台管理框架使用技巧(持续更新中) FastAdmin是一款基于ThinkPHP5+Bootstrap的极速后台开发框架,具体介绍,请查看文档,文档地址为:https://doc. ...
- mysql优化小技巧
对mysql优化时一个综合性的技术,主要包括 a: 表的设计合理化(符合3NF) b: 添加适当索引(index) [四种: 普通索引.主键索引.唯一索引unique.全文索引] c: 分表技术(水平 ...
- 网站开发进阶(二十二)HTML UI知识汇总(更新中...)
HTML知识汇总(更新中...) 1.<iframe> 标签 浏览器支持 所有浏览器都支持 <iframe> 标签. 定义和用法 iframe 元素会创建包含另外一个文档的内联 ...
- RS开发中的一些小技巧[不定期更新]
从9月份一直忙到了现在,项目整体的改版工作也完成了十有八九了,有些事情只有你自己真正的做了,你才能明白:哦,原来还可以这个样子,这样做真的好了很多呢,接下来我就分享一些最近遇到的RS开发的一些小技巧, ...
- iOS 开发中使用到的小技巧汇总
国庆即将来到,一个小项目也即将完成,把自己在项目中用的一些小技巧写出来,方便查找. 1,去掉分割线--动画设置透明度alpha //去掉tableView的分隔线: self.tableVie ...
- Python(^^^^^小技巧^^^^^——不定期更新)
偶然想到的小技巧 ''' 交互中对传入函数的参数的数目进行检测 ''' def func(a,b,c): print(a,b,c) s=input(">>>>:&qu ...
随机推荐
- .NET平台简介
前言: 看到一个名词:搜商(SQ),还挺有趣.讲的是在互联网时代,怎么能够快速找到自己所需信息或资源,成为一种能力,并将其提升到类似智商.情商的概念.在以后工作过程中,尽量提高自己获取.辨别.处理信息 ...
- vue路由传参query和params的区别(详解!)
1.query使用path和name传参都可以,而params只能使用name传参. query传参: 页面: this.$router.push({ path:'/city',name:'City' ...
- python函数之enumerate()
enumrate 语法: # enumerate(sequence, [start=]) 参数:# sequence -- 一个序列.迭代器或其他支持迭代对象.# start -- 下标起始位置. 使 ...
- xshell传送文件
xshel是一款非常好的ssh远程登入的软件,最近在玩hadoop发现的想把widows上的文件通过xshell直接传送到虚拟机中 这个解决方法还是非常不错的 https://jingyan.baid ...
- 源码阅读 - java.util.concurrent (二)CAS
背景 在JDK 5之前Java语言是靠synchronized关键字保证同步的,这会导致有锁 锁机制存在以下问题: (1)在多线程竞争下,加锁.释放锁会导致比较多的上下文切换和调度延时,引起性能问题. ...
- POJ 3686:The Windy's(最小费用最大流)***
http://poj.org/problem?id=3686 题意:给出n个玩具和m个工厂,每个工厂加工每个玩具有一个时间,问要加工完这n个玩具最少需要等待的平均时间.例如加工1号玩具时间为t1,加工 ...
- TCP中的粘包问题,以及用TCP和UDP实现多次聊天
TCP协议 在连接内多和客户端说几句 #server端 import socket sk = socket.socket() sk.bind(('127.0.0.1',9001)) sk.listen ...
- Docker笔记(二):Docker管理的对象
原文地址:http://blog.jboost.cn/2019/07/14/docker-2.html 在Docker笔记(一):什么是Docker中,我们提到了Docker管理的对象包含镜像.容器. ...
- Java SpringBoot 如何使用 IdentityServer4 作为验证学习笔记
这边记录下如何使用IdentityServer4 作为 Java SpringBoot 的 认证服务器和令牌颁发服务器.本人也是新手,所以理解不足的地方请多多指教.另外由于真的很久没有写中文了,用词不 ...
- I/O:OutputStream
OutputStream: void close() :关闭此输出流并释放与此流有关的所有系统资源. void flush() :刷新此输出流并强制写出所有缓冲的输出字节. void write(by ...