-
使用int来存储日期时间,利用FROM_UNIXTIME得到可阅读格式的日期时间,而使用UNIX_TIMESTAMP来将可阅读格式转换为int形式。使用bigint存储IP地址,利用INET_ATON(),INET_NTOA()两个函数转换。 选择类型规则:“合适”;存的下的最小数据类型;简单的类型;not null;少用text,用了分表 bigint存储ip,INET_ATON(),INET_NOTOA()转换 insert into sessions(ipaddress) values(INET_ATON('192.168.199.1')); select INET_NTOA(ipaddress) from sessions;查看全部
-
过多的索引不但影响写入,而且影响查询,索引越多,分析越慢 如何找到重复和多余的索引,主键已经是索引了,所以primay key 的主键不用再设置unique唯一索引了 冗余索引,是指多个索引的前缀列相同,innodb会在每个索引后面自动加上主键信息 冗余索引查询工具 pt-duplicate-key-checker查看全部
-
判断哪个列的离散度更高,高的更适合联合索引,index(col1,col2)离散度高的列放到前面,where、group by、order by、on从句中出现的 索引字段越小越好 离散度打的列放到联合索引前面查看全部
-
优化步骤1: order by 主键 步骤2: 如图,记录上次查询的主键,在条件中限制逐渐查询范围,但要注意这里的主键要是自增张1的,要不然查询的数据可能会少,所以在建表的时候尽可能的设置一个自增1的字段,比如index_id,并设置为主键查看全部
-
//mysql 数据库优化 group by可能会出现临时表(Using temporary),文件排序(Using filesort)等,影响效率。 可以通过关联的子查询,来避免产生临时表和文件排序,可以节省io 改写前 select actor.first_name,actor.last_name,count(*) from sakila.film_actor inner join sakila.actor using(actor_id) group by film_actor.actor_id; 改写后 select actor.first_name,actor.last_name,c.cnt from sakila.actor inner join( select actor_id,count(*) as cnt from sakila.film_actor group by actor_id )as c using(actor_id);查看全部
-
查询是否开启慢查询日志,show variables like 'show_query_log'查看全部
-
对max()查询,可以为表创建索引,create index index_name on table_name(column_name 规定需要索引的列),然后在进行查询 count()对多个关键字进行查询,可采用如下格式: 比如在一条SQL中同时查出2006年和2007年电影的数量,语句:select count(release_year='2006' or null) as '2006年电影数量',count(release_year='2007' or null) as '2007年电影数量' from film;查看全部
-
explain 返回各列的含义 extra列需要注意的返回值 Using filesort:看到这个的时候,查询就需要优化了 Using temporary 看到这个的时候,也需要优化,查看全部
-
//mysql 数据库优化 explain分析sql的执行计划,并找出sql需要优化的地方 table:表名; type:连接的类型,const、eq_reg、ref、range、index和ALL;const:主键、索引;eq_reg:主键、索引的范围查找;ref:连接的查找(join),range:索引的范围查找;index:索引的扫描; possible_keys:可能用到的索引; key:实际使用的索引; key_len:索引的长度,越短越好; ref:索引的哪一列被使用了,常数较好; rows:mysql认为必须检查的用来返回请求数据的行数; extra:using filesort、using temporary(常出现在使用order by时)时需要优化。查看全部
-
1、重点优化执行次数多且占用的时间比较长的sql; 通常为pt-query-digest分析的前几个查询 2、IO占用非常大的sql; 注意pt-query-digest分析中的rows examine项 3、没有命中索引的sql; 注意pt-query-digest分析中rows examine和rows send的对比查看全部
-
//mysql 数据库优化 MySQL慢查日志分析工具: 1 mysqldumpslow (mysql自带的工具,分析的不太详细) 2 pt-query-digest (推荐,分析的详细)查看全部
-
mysqldumpslow 慢日志的分析工具查看全部
-
//mysql 数据库优化 项目中,优化mysql之前,首先要开启慢查询日志,在分析慢查询日志. 开启慢查询日志: show variables like 'slow%'; //查看慢查询状态 set global slow_query_log_file='/home/mysql/sql_log/mysql-slow.log'; //设置慢查询记录文件的路径 set global log_queries_not_using_indexes=on; //记录未使用索引的查询 set global long_query_time=1; //设置慢查询的时间 set global slow_query_log = on; //开启慢查询日志记录查看全部
-
//mysql 数据库优化 优化的几个方面: 1 SQL及索引(提升性能最大,效率最高) 2 数据库表结构(根据范式设计表结构) 3 系统配置(linux对mysql打开文件数的限制等) 4 硬件(提高文件io的速度,但是成本最高) 数据库优化的目的: 避免出现页面访问错误 由于数据库连接timeout产生页面5xx错误 由于慢查询造成页面无法加载 由于阻塞造成数据无法提交查看全部
-
版本哈哈查看全部
举报
0/150
提交
取消