mysql
文章平均质量分 90
我会努力变强的
这个作者很懒,什么都没留下…
展开
-
mycat分表之ER表分片、范围分片、取模分片、日期分片、全局表等
概述数据库进行水平分表时,需要按照一定规则对数据进行分片。Mycat的分片策略可以分为两种:连续分片和离散分片。连续分片常用的有分片规则有:范围分片。日期分片。优点:如果进行范围查询,比如查询连续100条数据,mycat就不用到每个节点查询数据再汇总,只需在一个节点查询返回即可,比较节省资源,并且如果进行节点的扩展,也不用进行数据的重新分片。缺点:如果某些数据是越新的数据是热点数据的话,比如id 0-100000分配到节点1,然后过了一段时间之后,这些数据变成了冷数据,不再经常访问,但原创 2021-01-12 16:24:20 · 1044 阅读 · 0 评论 -
分库和分表基本概念
概述单体架构应用:项目初期,用户量不大时,往往是使用单体应用架构,所有应用代码都打成一个包发布、所有数据都存储在一个数据库中。随着业务的发展,数据量、访问量增加,经过单体架构的sql优化、索引优化、缓存优化、数据库参数优化等优化手段都用完了,还是没能达到理想的效果时,就需要对数据库进行拆分。分库分库就是把原本All in one的数据库按照一定的维度进行数据库的拆分,比如一个电商系统,原本是用户相关表、订单相关表、库存相关表、优惠相关表都是在同一个数据库中,现在要按照这些维度进行拆分。拆分前:原创 2021-01-11 15:16:03 · 1914 阅读 · 0 评论 -
Mysql主从复制集群类型和搭建方法
概述单机Mysql的缺点:读写请求都落在一台机器上,压力较大。低可用性,因为是单机单节点,一旦该节点挂了,服务就对外不可用了。容灾性低,因为单机,如果没有做及时备份的话,一旦机器出现不可挽回灾难的话,就会造成数据的丢失。…优点:简单。所以,就需要主从架构的出现:好处:使用主从架构并实现读写分离,主服务器负责写,从服务器负责读,可以降低服务器的压力,并且通过扩展从服务器可以提高读性能。高可用性,用双主双从架构达到主节点的主备切换,达到高可用。容灾性好,每个从节点都是主节点的副本,如原创 2021-01-09 16:16:14 · 434 阅读 · 4 评论 -
Mycat实现Mysql的一主一从和双主双从读写分离
前提是:已经有了一主一从的Mysql服务架构。已经安装启动好了mycat。并对mycat有一定了解。实现修改mycat的schema配置文件:<!--schema 标签用于定义 MyCat 实例中的逻辑库--><!-- name是逻辑库的名称,客户端连接mycat是看到这个数据库名称的--><!-- dataNode是设置逻辑库的真实数据库分片节点--><schema name="producer" checkSQLschema="true"原创 2021-01-08 19:42:26 · 530 阅读 · 1 评论 -
Mycat概述、核心概念及linux安装、运行、登录
概述Mycat,是一个数据库中间件,使用java语言编写,在程序和数据库之间塞一个代理层。使得操作物理数据库对我们透明化,可以像操作mysql等数据库那样操作mycat。特性:可以当做一个Mysql数据库来使用(使用方面)。支持 MySQL 之外的数据库,通过 JDBC 实现。支持 ZK 配置(外部配置),带监控 mycat-web。背景:Mycat是开源社区在阿里cobar基础上进行二次开发,解决了cobar存在的问题,并且加入了许多新的功能在其中。青出于蓝而胜于蓝。能干什么:myc原创 2020-11-17 19:52:53 · 272 阅读 · 0 评论 -
MySQL慢查询日志
概述MySQL的慢查询日志是MySQL提供的一种日志记录,他用来记录在MySQL中响应时间超过阈值的sql语句。要超过,也就是大于,等于都不会记录。具体指运行时间超过long_query_time值的SQL, 则会被记录到慢查询日志中。 long_query_time的默认值为10, 意思是运行10秒以上的语句。由他来查看哪些SQL超出了我们的最大忍耐时间值, 比如一条sql执行超过5秒钟, 我们就算慢SQL, 希望能收集超过5秒的sql, 结合之前explain进行全面分析优化。默认情况下是没原创 2020-11-13 19:18:31 · 503 阅读 · 0 评论 -
MySQL索引优化讲解
前提本文讲MySQL InnoDB存储引擎B树索引的sql优化,前提知识是对MySQL的B树索引的检索规则等方面有一定的理解,以及对EXPLAIN关键字查询计划的字段含义有一定的理解。建表语句CREATE TABLE `user` ( `id` bigint(11) NOT NULL AUTO_INCREMENT, `name` varchar(100) DEFAULT NULL, `age` int(11) DEFAULT NULL, `hobby` varchar(100) DEF原创 2020-11-13 18:44:50 · 202 阅读 · 0 评论 -
Linux(Centos7)下使用RPM方式安装MySQL5.7
之前一直都是安装时就搜博客,现在自己整理一下步骤。我的是centos7环境。先查看linux是否有默认安装的mysql组件,因为centos7默认会按照mariadb组件,centos6会默认安装mysql组件。rpm -qa|grep mariadb如果有,就要先卸载这些组件先。rpm -e --nodeps mariadb-libs检查tmp目录的权限:ll / 把他修改到最大权限:chmod -R 777 /tmp下载RPM安装包。我下载的是5.7.31版原创 2020-11-11 20:19:18 · 430 阅读 · 0 评论 -
MySQL执行计划EXPLAIN详解
说明该文章针对InnoDB存储引擎B树索引的优化,前提要对B树索引有一定的理解。查询SQL执行加载顺序这是我们写SQL的流程:SELECT a.`name` FROM a LEFT JOIN b ON a.id=b.aid WHERE a.name='xxx' GROUP BY a.name HAVING b.name!='xxx' ORDER BY a.id LIMIT 0,10机器对查询SQL的执行加载顺序:FROM <left table> //计算出多原创 2020-11-05 20:41:17 · 284 阅读 · 0 评论 -
MySQL事务与锁
概述事务是数据库管理系统执行过程中的一个逻辑单位,由一个有限的数据库操作系列构成。这里面有两个关键点:第一个,它是数据库最小的工作单元,是不可以再分的。第二个,它可能包含了一个或者一系列的 DML 语句,包括 insert delete update。InnoDB存储引擎支持事务,MyISAM存储引擎不支持事务。事务四大特性原子性:Atomicity,也就是上面说的最小工作单元,不可再分,也就是说这个工作单元中的多个数据库操作,要么全部成功,要么全部失败,不可能出现部分成功或者部分失败的情况原创 2020-10-31 18:40:23 · 544 阅读 · 1 评论 -
查询某个字段的记录是否包含中文或者是否是数字
SELECT col FROM table WHERE length(col)!=char_length(col) //判断是否是中文当编码为UTF-8时,中文的length和char_length的结果是不一样的。(col,REGEXP '[^0-9.]') //判断是否是数字,里面的正则表达式意思是匹配1个以上的非数字。不仅仅可以判断是否是数字,只要你写出相应的正则表达式,都能...原创 2019-06-16 12:21:59 · 3126 阅读 · 0 评论