MySQL 日常小技巧彙總,更新中

2022-05-03 14:15:13 字數 1814 閱讀 8019

create table `table_name` (

`id` int(11) unsigned not null auto_increment comment '自增主鍵',

primary key (`id`)

) engine=innodb auto_increment=default charset=utf8mb4 collate=utf8mb4_unicode_ci;

alter table `table_name` auto_increment = 2;
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`);
-- 定義變數,名字 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;
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

python日常小技巧 更新ing

目錄 python將多個list合併為乙個list sum list1,list2.listn python輸出大寫字母 小寫字母的列表 list 2020.08.09列表推導式中實現if elif else ascii碼值與字母對應關係如下 參考 字母 ascii碼值 a 65 z 90 a 97...

IDEA 日常小技巧

適用於 idea 2019.2 之前版本 2019.2 版本以下功能預設開啟。預設情況下,選中文字的再輸入其他,選中文字將會被輸入的字元代替。如果我們想輸入雙引號引用選中字元,選中字元將會被替換成雙引號,非常尷尬 這種情況下,不得不先輸入雙引號,然後將選中字元剪貼到雙引號中。在 idea 中,有個選...

程式設計小技巧持續彙總中

1 兩次取反操作!將目標物件轉變成對應的boolean型別而已。取反操作 會得到與目標物件代表的布林型值相反的布林值,而再做一次取反就得到了與其相同的布林值。boolean xx 和 xx是一樣的。以a兩次取反為例 如果a是0 兩次取反當然是false 如果a是null 兩次取反是false 如果a...