1.对表mysql.user执行DML语句(数据操作语言),那么此时磁盘数据较新,需要手动执行flush privileges 语句来覆盖内存中的授权数据。其他的DDL(数据操作语言),DQL(数据查询语言),DCL(数据控制语言)不用刷新。
2.计算,函数和类型转换会导致索引的失效。
3.什么情况下分表?
要根据表字段数量、表中数据数量以及是否存在大量text字段来综合考虑.数据量过大,索引B+树的层级变高,会导致IO增加、数据查找变慢 ,磁盘文件过大不利于备份,且遇到损伤时对恢复过程产生影响。
什么情况下分库?
连接不够用。MySQL Server 假设支持 4000 个数据库连接。一个服务连接池最大 10 个,假设有 40 个节点。已经占用了 400 个数据库连接。类似于这种服务,有10个,那你这个 MySQL Server 连接就不够了。
什么情况下又分库又分表?
高并发写入或查询场景。数据量巨大场景。