阐明: 创建函数,假如报错:由于开启过慢查询日志bin-log, 我们就必须为我们的 function 指定一个参数。复制代码
- This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its declaration and binary logging is enabled (you *might* want to use the less safe log_bin_trust_function_creators variable)
主从复制,主机会将写操纵记录在bin-log日志中。从机读取bin-log日志,实行语句来同步数据。如果使 用函数来操纵数据,会导致从机和主键操纵时间差别等。所以,默认环境下,mysql不开启创建函数设 置。
- 查看mysql是否允许创建函数:
复制代码
- SHOW VARIABLES LIKE 'log_bin_trust_function_creators';
- 命令开启:允许创建函数设置:
复制代码
- set global log_bin_trust_function_creators=1; # 不加global只是当前窗口有效。
- mysqld重启,上述参数又会消失。永世方法:
- windows下:my.ini[mysqld]加上:
复制代码
- log_bin_trust_function_creators=1 # 1 表示真-开启,0 表示假-关闭
- linux下:/etc/my.cnf 下my.cnf[mysqld]加上:
复制代码
- log_bin_trust_function_creators=1 # 1 表示真-开启,0 表示假-关闭
业务上具有唯一特性的字段,即使是组合字段,也必须建成唯一索引。(来源:Alibaba)2.2 频仍作为 WHERE 查询条件的字段
阐明:不要以为唯一索引影响了 insert 速率,这个速率消耗可以忽略,但进步查找速率是明显s的。
2.9 区分度高(散列性高)的列适相助为索引
- 【 逼迫 】在 varchar 字段上建立索引时,必须指定索引长度,没必要对全字段建立索引,根据实际文本 区分度决定索引长度。
- 阐明:索引的长度与区分度是一对抵牾体,一样平常对字符串类型数据,长度为 20 的索引,区分度会 高达 90% 以上 ,可以利用 count(distinct left(列名, 索引长度))/count(*)的区分度来确定。
结论:在数据表中的数据行数比较少的环境下,比如不到 1000 行,是不需要创建索引的。3.3 有大量重复数据的列上不要建立索引
结论:当数据重复度大,比如 高于 10% 的时候,也不需要对这个字段利用索引。3.4 避免对经常更新的表创建过多的索引
“在这个最后的篇章中,我要表达我对每一位读者的感激之情。你们的关注和回复是我创作的动力源泉,我从你们身上吸取了无尽的灵感与勇气。我会将你们的鼓励留在心底,继承在其他的范畴奋斗。感谢你们,我们总会在某个时候再次相遇。”
欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) | Powered by Discuz! X3.4 |