*利用MYSQL数据缓存提高效率,注意事项: 1.应用环境:不经常改变的表及对此表相同的查询 2.不适用于服务器端编写的语句 3.根据数据使用频率,合理分解表 4.合理使用默认条件,提高命中率 5.统一SQL语句编写规范,因为MYSQL解析时区分大小写 6.增加服务器缓存空间 *为查询缓存,优化查询语句: // 查询缓存不开启 $r = mysql_query("SELECT username FROM user WHERE signup_date >= CURDATE()");…
一.大表的大数据量修改 问题: 1.大量的行级锁,长时间阻塞   2.主从延时,大批数据不一致 解决方法: 分批次修改 二.大表的表结构修改 问题:长时间锁表 解决方法: 1.从库修改,主从切换,主库修改 (主从切换有风险) 2.建新表: 旧表数据导入到新表:旧表加触发器把新数据同步到新表:旧表加排他锁,新表重命名: 删除旧表 (使用工具, pt-online-schema-change) 三.优化not in/<> 子查询 not in + 子查询, 变换成 join 四.使用汇总表 例子:…
SQL提供了很多的聚集函数  COUNT([DISTINCT\ALL]*) SUM([DISTINCT\ALL]<列名>)AVG().…… WHERE 子句中是不能用聚集函数作为条件表达式的. SELECT CNO FROM SC WHERE Grade = AVG(Grade); 像这种就会报出错误. GROUP BY WHERE 和 HAVING 不同的是,WHERE 作用于table 或 view,而HAVING 作用于group by 操作后的分组,对这些分组进行操作.…
插入排序(InsertSort): 插入排序的基本思想:元素逐个遍历,在每次遍历的循环中,都要跟之前的元素做比较并“交换”元素,直到放在“合适的位置上”. 插入排序的特点:时间复杂度是随着待排数组的有序性变化的,数组越有序,插入排序的时间复杂度越低(接近O(n)级别),反之,时间复杂度越高(O(n*n)级别),平均情况是O(n*n)级别,所以我们日常使用时,只针对较为有序的数组进行插入排序,插入排序通常并不需要额外的数据存储空间,插入排序将数组分为无序区和有序区两个区,然后不断将无序区的第一个元…
1.nginx日志切割脚本 需求来源:nginx本身并没有日志切割的功能,由访问产生的大日志很难进行分析. 实现目的:每天对nginx日志进行切割,并备份至指定文件夹. 简要指令: mv /usr/local/tengine/logs/access.log /usr/local/tengine/logs/access-date.log kill -USER1 Nginx主进程号.   解释:      通过mv命令重命名日志,并且通过kill -USER1 nginx-id的命令,告诉nginx…
1. 字符串拼接函数 :CONCAT(str1,str2,...) SELECT CONCAT('AAA','BBB') STR; //AAABBB 2. 判断是否为null,为null就指定另外一个值:IFNULL(expr1,expr2) SELECT IFNULL('AAAA','BBB') STR; //AAAA SELECT IFNULL(NULL,'BBB') STR; //BBB 需要特别注意的是:需要保证你的使用函数的行必须有数据,否则函数是不起作用的! 3. 获取当前日期时间函…
1.获取数据库下的所有表名 select TABLE_NAME from information_schema.tables where TABLE_TYPE='Base TABLE' 2.随机取出10条数据 ) * from T_MeterCard order by newid()…
-----> 总文章 入口 文章目录 [-----> 总文章 入口](https://blog.csdn.net/qq_37214567/article/details/90174445) SQL优化 1. 技术点 2. 实际案例分析 SQL优化 1. 技术点 对查询进行优化,要尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描, 如: select id…
code&monkey   Ext JS学习第十六天 事件机制event(一) 此文用来记录学习笔记: 休息了好几天,从今天开始继续保持更新,鞭策自己学习 今天我们来说一说什么是事件,对于事件,相信你一定不陌生, 基本事件是什么?就类似于click.keypress.focus.mouseover等这些事件都是浏览器定义好的内置事件,我们直接使用即可.对于高级事件,无非就是自己去设计一个事件,就比如我们实际项目中,通常都伴随些业务逻辑,可能是曾删改查等...这些事件都是非原生事件,也就是浏览器无…
当 MySQL 单表记录数过大时,增删改查性能都会急剧下降,本文会提供一些优化参考,大家可以参考以下步骤来优化. 单表优化 除非单表数据未来会一直不断上涨,否则不要一开始就考虑拆分,拆分会带来逻辑.部署.运维的各种复杂度. 一般以整型值为主的表在千万级以下,字符串为主的表在五百万以下是没有太大问题的. 而事实上很多时候 MySQL 单表的性能依然有不少优化空间,甚至能正常支撑千万级以上的数据量. 字段 关于字段: 尽量使用 TINYINT.SMALLINT.MEDIUM_INT 作为整数类型而非…