-
1、索引字段越小越好,2、唯一值越多离散度越大放到联合索引前边查看全部
-
记录上一次主键分配到的是多少查看全部
-
在子查询优化成join查询的时候,要注意是否存在一对多的关系若存在,就要去除重复distinct查看全部
-
count(*)时会包含null空这一列,而count(id)这种写法将不包含null这一列 所以 select count(2006 or null),count(2007 or null) from film;这种方法是最好的。查看全部
-
当表中数据过大时通过横拆分将一份大数据表拆分成几个小的数据表方法是mod(字段,拆分成几个)来提高查询的效果。但后台查询将会受到影响,所以要再写一张大数据表,存储所有数据。查看全部
-
Mysql优化——开启慢查询日志查看全部
-
mysql语优化,可以通过开启MySQL慢查询日志来分析。查看全部
-
使用MySQL慢日志监控查看全部
-
MYSQL慢查询配置查看全部
-
innodb缓冲池大小设置查看全部
-
系统部分参数优化查看全部
-
1)查看mysql是否开启慢查询日志 show variables like 'slow_query_log'; 2)设置没有索引的记录到慢查询日志 set global log_queries_not_using_indexes=on; 3)查看超过多长时间的sql进行记录到慢查询日志 show variables like 'long_query_time' 4)开启慢查询日志 set global slow_query_log=on查看全部
-
数据库优化: 1、SQL及索引优化 结构良好的SQL(选择最优的SQL)、 有效索引(索引越多不但会造成写操作的效率下降、而且也会造成读操作效率下降) 2、数据库表结构(满足范式、考虑到查询语句的写法) (根据数据库设计范式,设计出简洁明了的表结构、减少数据的冗余; a、在设计表结构时候要想到怎么样对这个表数据进行查询 b、怎么样设计表结构才是有益于SQL写法的 SQL及索引的优化也是日常工作中所涉及到的最多的一种优化方式 3、系统配置 大多数情况下我们的mysql都是跑在linux上的,系统本身也是会有些限制: a、tcp/ip连接数的限制 b、打开文件数限制(重点) mysql都是基于文件的,每查询一个表时,需要打开一些文件, 一旦打开的文件数超过上限,文件就会无法打开、就会平分IO操作 c、安全性限制 4、 硬件优化 内存:越大越好、mysql查询修改都是load在内存中进行的。 CPU:并不是越多,性能提升就越好的、mysql会对cpu核数进行限制、甚至有些查询只会用到单核 硬盘:会影响IO,可以考虑换用SSD,固态硬盘等等 所以这种IO设备对数据库肯定是有良好的影响的,但是这只是表面、并不能解决mysql内部锁的问题 lock锁是保证数据完整性的一种机制, 虽然IO很快并不能解决阻塞,所以说硬件优化、其实是成本最高,效果最不明显的 如果没有良好的SQL及有效的索引,数据库查询造成大量的慢查询、大量的阻塞,随之并发量就会上去、并发量一上去loading 就会高,会造成应用缓慢查看全部
-
网络方面,修改/etc/sysctl.conf文件,增加tcp支持的队列数,减少断开连接时,资源的回收。 2. 打开文件数的限制。修改/etc/security/limits.conf文件,增加一下内容以修改打开文件数量的限制。 关闭iptables,selinux等防火墙软件。查看全部
-
表的水平拆分 为了解决单表数据量过大的问题,每个水平拆分表的结构完全一致 方法 1.对id进行hash运算,可以取mod 挑战 1.跨分区进行数据查询 2。统计及后台报表操作查看全部
举报
0/150
提交
取消