重庆南岸营销型网站建设公司哪家专业,看啥网一个没有人工干预的网,人防工程建设网站,网站 拉新慢查询排查优化 排查 slow_query_log设置为on#xff0c;就会记录慢查询sql#xff1b;long_query_time可以设置慢查询sql的阈值时间#xff1b;slow_query_log_file表示记录慢查询sql的日志路径。即我们可以通过打开记录慢查询的开关#xff0c;设置慢查询的时间阈值…慢查询排查优化 排查 slow_query_log设置为on就会记录慢查询sqllong_query_time可以设置慢查询sql的阈值时间slow_query_log_file表示记录慢查询sql的日志路径。即我们可以通过打开记录慢查询的开关设置慢查询的时间阈值查看日志就能看到慢查询的执行sql。然后使用explain查看sql的执行计划主要看type字段判断是否走索引了。优化 子查询优化使用join代替in子查询的话mysql会建立临时表再把临时表销毁效率会很低字段优化尽量使用整形不要设置太长避免between、like、、范围查询导致的全表查询经常使用的字段创建索引事先准备好报表避免查询时计算数据导致的性能下降分库分表历史数据迁移使用redis缓存数据减少查询次数 聚集索引和非聚集索引 聚集索引 聚集索引指的就是主键索引索引和数据是存放在一起的故名聚集。mysql的数据在磁盘上是以页的形式进行存储的每页中的数据按主键的值从小到大进行排列因此可以通过目录页对数据查询进行维护每个目录都记录了数据的页数以及该页的最小键值。在查询时根据先可以目录项定位要查询的数据所在的页数再到数据页中按主键值通过二分法进行查询。非聚集索引 非聚集索引的数据结构与聚集索引类似不过在数据项中存储的是主键查询的时候先通过非聚集索引查询得到主键再通过主键回表查询具体的数据。区别 主键索引叶子节点存储的是具体的数据而非聚集索引叶子节点存储的主键。聚集索引每张表只能有一个非聚集索引每张表可以有多个。聚集索引在内存上是线性的而非聚集索引在内存上不是线性的逻辑上是线性的。 limit查询变慢的原因 limit语句会先扫描offsetn行然后再丢弃掉前offset行返回后n行数据。当limit后面跟的值比较大mysql查询时扫描的行数变多导致查询的时间变长。因此limit的第一个参数不要设置的太大可以通过主键id找到要查询的位置再进行limit。mysql事务隔离级别 读未提交读已提交可重复读序列化。可重复读底层是通过mvcc实现的。mysql的char和varchar的区别 varchar 类型的长度是可变的而 char 类型的长度是固定的char 长度最大为 255 个字符varchar 长度最大为 65535 个字符varchar 类型的查找效率比较低而 char 类型的查找效率比较高 DATETIME 和 TIMESTAMP 的区别 DATETIME比TIMESTAMP的范围要广TIMESTAMP占4个字节DATETIME占用8个字节TIMESTAMP会时间在当前时间和UTC之间进行转化DATETIME直接保存和返回 什么情况下会创建索引 字段的值是唯一表的数据量比较大并且频繁作为where的查询条件 索引失效的情况 不遵循最左前缀原则索引上有通配符索引的类型和匹配类型不一致索引上存在内置函数or连接了非索引字段范围查询时数据量过大 索引优化 避免回表索引最好设置为not null explain调试sql