千万级数据库SQL查询优化方法

摘要: 1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,Sql 代码 : select id from t where num is null;可以在 num 上设置默认值 0,确保表中 num 列没有 null 值,然后这样查询:Sql 代码 : select id from t where num=0;3.应尽量

 mysql 的delete from 和update子查询限制

摘要:做项目时发现的问题,好像在update时也有。。。网上查到的资料如下:1.使用mysql进行delete from操作时,若子查询的 FROM 字句和更新/删除对象使用同一张表,会出现错误。mysql> DELETE FROM tab1 WHERE col1 = ( SELECT MAX( col1 ) FROM tab1 ); ERROR 1093 (HY000): You can’t specify target table ‘tab1′ for update in FROM clause 针对“同一张表”这个

 mysql死锁问题分析

摘要:线上某服务时不时报出如下异常(大约一天二十多次):“Deadlock found when trying to get lock;”。      Oh, My God! 是死锁问题。尽管报错不多,对性能目前看来也无太大影响,但还是需要解决,保不齐哪天成为性能瓶颈。     为了更系统的分析问题,本文将从死锁检测、索引隔离级别与锁的关系、死锁成因、问题定位这五个方面来展开讨论。  

 配置 Mysql 读写分离+强制走写节点+根据主从延时的读写分离

摘要:数据库读写分离对于大型系统或者访问量很高的互联网应用来说,是必不可少的一个重要功能。对于MySQL来说,标准的读写分离是主从模式,一个写节点Master后面跟着多个读节点,读节点的数量取决于系统的压力,通常是1-3个读节点的配置。Mycat读写分离和自动切换机制,需要mysql的主从复制机制配合。·       MyCat的安装请参考:Linux 下 Mycat 的安

 SQL:一种熟悉又陌生的编程语言,你了解他吗?

摘要:一、SQL :一种熟悉又陌生的编程语言这里有几个关键词;“熟悉”、“陌生”、“编程语言”。说它“熟悉”,是因为它是DBA和广大开发人员,操作数据库的主要手段,几乎每天都在使用。说它“陌生”,是很多人只是简单的使用它,至于它是怎么工作的?如何才能让它更高效的工作?却从来没有考虑过。这里把SQL归结为一种“编程语言”,可能跟很多人对它的认知不同。让我们看看它的简单定

 逆天操作-将https访问通过反向代理转换成http访问

摘要:业务需求:第三方平台要求以https协议来访问网站,但平台没有配置https,只有http,如果不配置成https,第三方平台不提供服务。解决方法:通过apache反向代理+浏览器跨域解决https转http问题重点要解决以下两个问题:                  1.浏览器只允许https到https的访问,不允许ht

 利用slave_relay_log_info信息通过复制从库物理文件做主从

摘要:生产环境:MySQL 5.7.18 [RPM]Linux:CentOS 6.9主库:node111 从库:node130新增加从库:node131原理:利用slave_relay_log_info信息通过复制从库物理文件做一台新的从库 实现的功能:在不停应用的情况,快速新增加一台从库  vim /etc/my.cnf  #配置slave从库的配置信息以表的形式存储relay_log_info_repository = TABLEmaster_info_repositor

 MySQL支持emoji图标存储的反思

摘要:按网上的说法可以按以下方法配置:解决方案: 将Mysql的编码从utf8转换成utf8mb4。1. 修改my.ini在[mysqld]中增加如下内容[client]default-character-set=utf8mb4[mysqld]character-set-client-handshake = FALSEcharacter-set-server = utf8mb4collation-server = utf8mb4_unicode_ciinit_connect=’SET NAMES utf8mb4'[mysql]default-character-set=utf8mb42. 在后台配置

 MySQL到底是怎么解决幻读的

摘要:一、什么是幻读在一次事务里面,多次查询之后,结果集的个数不一致的情况叫做幻读。而多出来或者少的哪一行被叫做幻行。二、为什么要解决幻读在高并发数据库系统中,需要保证事务与事务之间的隔离性,还有事务本身的一致性。三、MySQL 是如何解决幻读的如果你看到了这篇文章,那么我会默认你了解了脏读、不可重复读与可重复读。1. 多版本并发控制(MVCC)(快照读/一致性读)多

 MySQL手工指定表使用的索引

摘要:手动指定索引的语法:USE {INDEX|KEY}[{FOR {JOIN|ORDER BY|GROUP BY}} ([index_list])| IGNORE {INDEX|KEY}[{FOR {JOIN|ORDER BY|GROUP BY}} (index_list) |FORCE {INDEX|KEY}[{FOR {JOIN|ORDER BY|GROUP BY}} (index_list)mysql强制索引和禁止某个索引1、mysql强制使用索引:force index(索引名或者主键PRI)select * from table force index(PRI) limit 2;(强制使用主键)selec
分页:« 12 13 14 15 16 17 18 19 20 21 »
Powered by AKCMS