MySQL常见问题
mysqldump
|
|
定时任务备份crontab
:
|
|
查询用户所有权限
|
|
表被锁定
|
|
查询当前连接情况
|
|
执行语句不记录binlog
发现了比较诡异的事情,在服务器mysql控制台,修改表结构,主数据库生效了,但是从数据居然没有生效。查询了主数据库的binlog文件和从数据库的relaylog文件都没有找到这条语句。什么鬼?
|
|
切记!切记!切记!
表空间占用统计
|
|
删除表中数据
程度从强到弱
1、drop table tb
drop将表格直接删除,没有办法找回
2、truncate (table) tb
删除表中的所有数据,不能与where一起使用
3、delete from tb (where)
删除表中的数据(可制定某一行)
区别:truncate和delete的区别
- 事务:truncate是不可以rollback的,但是delete是可以rollback的; 原因:truncate删除整表数据(ddl语句,隐式提交),delete是一行一行的删除,可以rollback
- 效果:truncate删除后将重新水平线和索引(id从零开始) ,delete不会删除索引
- truncate 不能触发任何Delete触发器。
- delete 删除可以返回行数
MySQL配置参数
涉及参数 –skip-name-resolve ,–skip-host-cache ,–skip-networking
当新的客户连接mysqld时,mysqld创建一个新的线程来处理请求。该线程先检查是否主机名在主机名缓存中。如果不在,线程试图解析主机名:
- 如果操作系统支持线程安全gethostbyaddr_r ()和gethostbyname_r()调用,线程使用它们来执行主机名解析。
- 如果操作系统不支持线程安全调用,线程锁定一个互斥体并调用gethostbyaddr()和gethostbyname()。在这种情况下,在第1个线程解锁互斥体前,没有其它线程可以解析不在主机名缓存中的主机名。
你可以用**–skip-name-resolve**选项启动mysqld来禁用DNS主机名查找。然而,在这种情况下,你只可以使用MySQL中的授权表中的IP号。如果你有一个很慢的DNS和许多主机,你可以通过用–skip-name-resolve禁用DNS查找或增加HOST_CACHE_SIZE定义(默认值:128)并重新编译mysqld来提高性能。
你可以用**–skip-host-cache**选项启动服务器来禁用主机名缓存。要想清除主机名缓存,执行**FLUSH HOSTS**语句或执行**mysqladmin flush-hosts**命令。
如果你想要完全禁止TCP/IP连接,用**–skip-networking**选项启动mysqld。
Use Database很卡
在普通控制台登录状态下,当数据库中表比较多,且单表又比较大时,执行这个 use databases 指令就会很卡 ( 也跟机器性能有很大关系 )。此时需要在登录的时候加入一个-A
的参数,跳过一些检查。
|
|
MySQL读写分离
参考:
https://juejin.cn/post/7388091090349490202
https://mp.weixin.qq.com/s/ZQTKyD2DSbUqlZcrZrVExQ
(完)
- 原文作者: 闪电侠
- 原文链接:https://chende.ren/2021/09/18104600-backup-qa.html
- 版权声明:本作品采用 开放的「署名 4.0 国际 (CC BY 4.0)」创作共享协议 进行许可