mysql给表增加字段会锁表,怎样才可以不锁表吗

mysql给表增加字段会锁表,怎样才可以不锁表吗,第1张

锁表一般是长时间占用表导致的,

试着使SELECT语句运行得更快;你可能必须创建一些摘要(summary)表做到这点。

用--low-priority-updates启动mysqld。这将给所有更新(修改)一个表的语句以比SELECT语句低的优先级。在这种情况下,在先前情形的最后的SELECT语句将在INSERT语句前执行。

你可以用LOW_PRIORITY属性给与一个特定的INSERT、UPDATE或DELETE语句较低优先级。

为max_write_lock_count指定一个低值来启动mysqld使得在一定数量的WRITE锁定后给出READ锁定。

通过使用SQL命令:SET SQL_LOW_PRIORITY_UPDATES=1,你可从一个特定线程指定所有的更改应该由用低优先级完成

有时候,会很不小心,在业务运行中执行了一条锁表语句。这时候该怎么办?

例如:修改元数据。

SHOW FULL PROCESSLIST 查看一下:

发现修改之后,锁表了。这时候怎么办? 杀死它 KILL 4623660

然后一切又恢复正常了。

一般对于数据量较大的表,需要修改表结构,或者做一些耗时比较久的锁表 *** 作,建议在晚上(业务闲时)执行。这个时候可以配合使用任务处理一下。

如:修改一个表的字段长度,和添加索引

名词解释:

接着回家睡觉,第二天回来检查结果就好了。

附:添加唯一索引示例

MYSQL存储过程结合任务处理耗时 *** 作

mysql 添加字段不会影响查询。

假设表名为tab1,只有字段为a,b,想在查询结果中新增字段c(固定值为100),可以这样写:

SELECT T.*,100 as c FROM tab1 T

若100为字符串则是:

SELECT T.a,T.b,'100' as c FROM tab1 T

其它的举一反三即可。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11630917.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存