摘要:题目:假设某个表有一个联合索引(c1,c2,c3,c4),以下那个只能使用联合索引的c1,c2,c3部分:A.where c1=x and c2=x and c4>x and c3=xB.where c1=x and c2=x and c4=x order by c3C.where c1=x and c4=x group by c3,c2D.where c1=? and c5=? order by c2,c3E.wherre c1=? and c2=? and c5=? order by c2,c3创建一张表并插入数据:root@db5.7.18[test]> use test;Database
2019年09月10日
终于明白为什么要“分库分表”了!
摘要:例如:单表中出现了,动辄百万甚至千万级别的数据。“分表分库”就成为解决上述问题的有效工具。今天和大家一起看看,如何进行分表分库以及期间遇到的问题吧。为什么会分表分库数据库数据会随着业务的发展而不断增多,因此数据操作,如增删改查的开销也会越来越大。再加上物理服务器的资源有限(CPU、磁盘、内存、IO 等)。最终数据库所能承载的数据量、数据处理能力都将遭遇瓶颈
分类:DataBase
2019年09月09日
MySQL--SQL语句优化之 left join
摘要:工作中我们经常用到多个left join去关联其他表查询结果,但是随着数据量的增加,一个表的数据达到百万级别后,这种普通的left join查询将非常的耗时。原SQL:SELECT a.*,b.*,b.diff_num,b.supplier_id,b.num,b.price,c.product_id,c.old_spec_sku,c.new_purchase_price,d.old_parent_sku,d.product_cname FROM hexin_erp_storage_out_main a left JOIN hexin_erp_storage_out_de
分类:DataBase
2019年09月03日
修改主机时间对MySQL影响-InnoDB: Waiting for page_cleaner to finish flushing of buffer pool
摘要:背景在装机实施时,BIOS忘记调整时间,导致服务器时间与CST不符合;待发现问题时,MySQL环境已经在运行,所以只能通过操作系统进行更改;但是更改完成后,MySQL进行重启时发生了问题。以下为问题复现和解决过程测试环境MySQL 5.7.24 CentOS 7.4root@localhost : (none) 12:00:54> show variables like '%time_zone';+------------------+--------+| Variable_name | Value |
分类:DataBase
2019年08月29日
MySQL:为什么无法KILL在processlist中的语句[转]
摘要:在 MySQL 中有两个 kill 命令:一个是 kill query + 线程 id,表示终止这个线程中正在执行的语句;一个是 kill connection + 线程 id,这里 connection 可缺省,表示断开这个线程的连接,当然如果这个线程有语句正在执行,也是要先停止正在执行的语句的。不知道你在使用 MySQL 的时候,有没有遇到过这样的现象:使用了 kill 命令,却没能断开这个连接。再执行 show processlist
分类:DataBase
2019年08月19日
MySQL千万级数据库数据插入速度调优
摘要:问题描述:普通台式机,采集数据,表中已经有>1000万数据量。采集回来的数据插入表中的时候很慢,每条约100毫秒。解决方法:1、加大mysql配置中的bulk_insert_buffer_size,这个参数默认为8Mbulk_insert_buffer_size=100M2、改写所有insert语句为insert delayed这个insert delayed不同之处在于:立即返回结果,后台进行处理插入。还有一个技巧是在一跳insert中插入多条数据,
分类:DataBase
2019年08月19日
千万级数据库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.应尽量
分类:DataBase
2019年08月01日
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 针对“同一张表”这个
分类:DataBase
2019年07月31日
mysql死锁问题分析
摘要:线上某服务时不时报出如下异常(大约一天二十多次):“Deadlock found when trying to get lock;”。 Oh, My God! 是死锁问题。尽管报错不多,对性能目前看来也无太大影响,但还是需要解决,保不齐哪天成为性能瓶颈。 为了更系统的分析问题,本文将从死锁检测、索引隔离级别与锁的关系、死锁成因、问题定位这五个方面来展开讨论。
分类:DataBase
2019年07月25日
配置 Mysql 读写分离+强制走写节点+根据主从延时的读写分离
摘要:数据库读写分离对于大型系统或者访问量很高的互联网应用来说,是必不可少的一个重要功能。对于MySQL来说,标准的读写分离是主从模式,一个写节点Master后面跟着多个读节点,读节点的数量取决于系统的压力,通常是1-3个读节点的配置。Mycat读写分离和自动切换机制,需要mysql的主从复制机制配合。· MyCat的安装请参考:Linux 下 Mycat 的安