• 创建表时修改自增主键,添加 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

最新文章

  1. python基础01 Hello World!
  2. JSON导出CSV中文乱码解决方案
  3. html/京东项目/京东网页高仿/js/jq/css/java web/
  4. XMLA连接器--免费但不开源通过ODBO、XMLA
  5. Dx unsupported class file version 52.0
  6. C#类的继承相关总结
  7. Syntax error on token &quot;package&quot;, assert expected------踩坑记录
  8. Java数据持久层框架 MyBatis之背景知识一
  9. JSM的topic和queue的区别
  10. Tableau-安装的坑
  11. DICOM 协议学习笔记之 How Does DICOM Work ?
  12. ACM题目————区间覆盖问题
  13. 10.Node.js核心模块
  14. Ubuntu18.04 英文系统下安装中文输入法
  15. How To Check Member In Window VS With CplusPlus?
  16. 纯CSS实现3D照片墙
  17. python爬虫实战(四)--------豆瓣网的模拟登录(模拟登录和验证码的处理----scrapy)
  18. 6、git和github
  19. leetcode 【 Best Time to Buy and Sell Stock III 】python 实现
  20. 关于TransactionScope 使用

热门文章

  1. Python自学day-6
  2. 【Zookeeper02】ZK的作用以及使用
  3. CSS清除默认样式代码
  4. Linux系统中sysctl命令详解
  5. ACM之路(转载)
  6. Python之Pandas库学习(二):数据读写
  7. java的封神之路[转载]
  8. Google 的 Java 编码规范,参考学习!
  9. JDK源码阅读(三):ArraryList源码解析
  10. pod update更新error: RPC failed; curl 18 transfer closed with outstanding read data remaining