mysql
文章平均质量分 92
DreamLRH
你不会的东西,觉得难的东西,一定不要躲。先搞明白,后精湛,你就比别人优秀了。因为大部分人都不舍得花力气去钻研,自动淘汰,所以你执着的努力,就占了大便宜。奋斗就是每一天都很难,可一年比一年容易。不奋斗就是每一天都很容易,可一年比一年越难。怕吃苦的人吃苦一辈子,不怕吃苦的人吃苦一阵子。拼一个春夏秋冬,赢一个无悔人生。
展开
-
【无标题】MySQL六十六问,两万字+五十图详解!
MySQ Logo作为SQL Boy,基础部分不会有人不会吧?面试也不怎么问,基础掌握不错的小伙伴可以跳过这一部分。当然,可能会现场写一些SQL语句,SQ语句可以通过牛客、LeetCode、LintCode之类的网站来练习。MySQL的连接主要分为内连接和外连接,外连接常用的有左连接、右连接。MySQL-joins-来源菜鸟教程数据库三范式你设计遵守范式吗?三大范式的作用是为了控制数据库的冗余,是对空间的节省,实际上,一般互联网公司的设计都是反范式的,通过冗余一些数据,避免跨表跨库,利用空间换时间,提高性能转载 2022-06-22 12:36:28 · 649 阅读 · 0 评论 -
【无标题】mysql主库更新后,从库都读到最新值了,主库还有可能读到旧值吗?
我们知道,mysql数据库,为了得到更高性能,一般会读写分离,主库用于写操作,比如用于执行insert,update操作,从库用于读,也就是最常见的select操作。像下面这个图这样。mysql读写分离虽然主库一般用于写操作,但也是能读的。那么今天的问题来了。 主库更新后,主库都读到最新值了,从库还有可能读到旧值吗? 主库更新后,从库都读到最新值了,主库还有可能读到旧值吗? 毕竟面试官都这么问了,那当然是有可能的,那至于是为啥,以及怎么做到的,今天我们来好好聊聊。正常的主转载 2022-03-03 12:27:46 · 206 阅读 · 0 评论 -
阿里面试:说说一致性读实现原理?
这个问题是我当初在面天猫的时候,2面的面试官问我的,我之前已经写过mvcc的文章了,但是在看到我笔记的里的这个问题的时候我准备单独理一遍,所以就有了这个文章。现在,主流关系型数据库产品基本都实现了MVCC的特性,快照在MVCC中起着重要的作用,代表某一时刻数据的版本,它是实现一致性读的基础。在更新操作没提交前,数据的前镜像存储在Undo中,利用Undo可以实现一致性读,事务回滚以及异常恢复等操作,下面就聊聊MySQL事务,MVCC,快照及一致读的原理与实现。MySQL中的事务事务在RDBMS系统转载 2020-11-24 11:19:01 · 187 阅读 · 0 评论 -
MySQL中,21个写SQL的好习惯
1. 写完SQL先explain查看执行计划(SQL性能优化)日常开发写SQL的时候,尽量养成这个好习惯呀:写完SQL后,用explain分析一下,尤其注意走不走索引。explainselectuserid,name,agefromuserwhereuserid=10086orage=18;2、操作delete或者update语句,加个limit(SQL后悔药)在执行删除或者更新语句,尽量加上limit,以下面的这条 SQL 为例吧:deletefrome...转载 2020-11-19 17:43:37 · 73 阅读 · 0 评论 -
MySQL 性能优化神器 Explain 使用分析
简介MySQL 提供了一个 EXPLAIN 命令, 它可以对SELECT语句进行分析, 并输出SELECT执行的详细信息, 以供开发人员针对性优化.EXPLAIN 命令用法十分简单, 在 SELECT 语句前加上 Explain 就可以了, 例如:EXPLAINSELECT*fromuser_infoWHEREid<300;准备为了接下来方便演示 EXPLAIN 的使用, 首先我们需要建立两个测试用的表, 并添加相应的数据:CREATE TABL...原创 2020-07-22 15:57:57 · 162 阅读 · 0 评论 -
大型网站常见问题
网站运营总结1.大访问量2.大储存量3.访问速度4.服务器监控一、大访问量a.负载均衡1)Cisco以太网通道2)Windows NLB技术3)Linux LVS技术一般来说,LVS集群采用三层结构、负载调度器,服务器池、共享存储主要部分组成。4)F5等负载均衡器b.冗余技术1)Cisco HSRP热备份路由(线路冗余)2)W...转载 2019-01-09 16:25:02 · 3692 阅读 · 0 评论 -
CentOS下的Mysql的安装和使用
1.使用安装命令 :yum -y install mysql mysql-server mysql-devel安装完成却发现Myserver安装缺失,在网上找原因,原来是因为CentOS 7上把MySQL从默认软件列表中移除了,用MariaDB来代替,所以这导致我们必须要去官网上进行下载,找到链接,用wget打开:a: #wget http://dev.mysql.com/get/mysq...转载 2019-01-23 16:30:09 · 107 阅读 · 0 评论 -
MySQL实战练习
项目一:数据导入导出内容:将之前创建的任意一张MySQL表导出,且是CSV格式,再将CSV表导入数据库。操作如下(以下为Navicat操作步骤截图):1.选一个表格,右击选择“导出向导”,如下图:在这里插入图片描述2.选择“CSV文件”,如下图:在这里插入图片描述3.按照提示选择即可:在这里插入图片描述4.找到导出的文件,右击Navicat中表格,选择“导入向导”,如下图:...转载 2019-04-08 15:36:22 · 268 阅读 · 0 评论 -
谈谈Mysql事务隔离级别
当我们的数据是引擎是InnoDB的时候。事务的隔离级别分为:未提交读(read uncommitted)、已提交读(read committed)、可重复读(repeatable read)、串行化(serializable)。未提交读未提交读的意思就是比如原先name的值是小刚,然后有一个事务B`update table set name = '小明' where id = 1`,它...原创 2019-09-09 17:40:08 · 167 阅读 · 0 评论 -
史上最牛最全分库分表方案!
一、数据库瓶颈不管是IO瓶颈,还是CPU瓶颈,最终都会导致数据库的活跃连接数增加,进而逼近甚至达到数据库可承载活跃连接数的阈值。在业务Service来看就是,可用数据库连接少甚至无连接可用。接下来就可以想象了吧(并发量、吞吐量、崩溃)。1、IO瓶颈第一种:磁盘读IO瓶颈,热点数据太多,数据库缓存放不下,每次查询时会产生大量的IO,降低查询速度 -> 分库和垂直分表。第二种...转载 2019-09-09 17:46:00 · 2168 阅读 · 0 评论 -
MySQL基础总结
数据库的概念以及sql通用语法 开启mysql服务器:win+R打开运行窗口,输入“services.msc”即可,推荐都自动开启。 登录和退出mysql登录本机的数据库:mysql -uroot -p管理员密码登录别人的数据库: mysql -h别人的ip地址 -uroot -p管理员密码退出数据:exit或者quit mysql数据目录1 数据库:本...转载 2019-09-09 18:04:53 · 161 阅读 · 0 评论 -
MySQL - 约束
约束 概念:限制表中的数据,保证数据的正确性、有效性和完整性。约束的分类单表约束: 非空约束:not null,规定某一列的数据不能为null. 唯一约束:unique,规定某一列的数据唯一不重复。 主键约束:primary key,规定某一列唯一不重复且不能为null,一般用来作为一条数据的唯一标识。 主键的特点:...转载 2019-09-09 18:08:41 · 132 阅读 · 0 评论 -
MySQL - 多表查询
多表查询多表查询的分类1 连接查询 交叉连接:将一个表中的每一条数据和另一张表的每一条数据无条件连接。(了解) 语法1:select * from 表1 cross join 表2 [cross join 表3]... 语法2:select * from 表1,表2,...; 结果集:笛卡尔积:如果表1有3条数据,表2有5条数据,那么交叉连...转载 2019-09-09 18:12:58 · 852 阅读 · 0 评论 -
Mysql主从服务搭建
环境准备至少2台linux的web服务器,Lamp环境以搭建完毕,本例以centos5.5测试。Mysq-master的ip地址为192.168.10.1,Mysql-slave的ip地址为192.168.10.2。ifconfig eth0 192.168.10.1 --Masterifconfig eth0 192.168.10.2 --Slave在主服务器中授权一...原创 2019-01-09 14:29:52 · 204 阅读 · 0 评论 -
MySQL主键和外键使用及说明
一、外键约束 MySQL通过外键约束来保证表与表之间的数据的完整性和准确性。 外键的使用条件: 1.两个表必须是InnoDB表,MyISAM表暂时不支持外键(据说以后的版本有可能支持,但至少目前不支持); 2.外键列必须建立了索引,MySQL 4.1.2以后的版本在建立外键时会自动创建索引,但如果在较早的版本则需要显示建立; 3.外键关系的两个表的列必须是数...转载 2019-01-14 17:09:48 · 402 阅读 · 0 评论 -
mysql分片、分区、分表、分库
一、Scale Out(横向扩展)/Scale Up(纵向扩展)Mysql的扩展方案包括Scale Out和Scale Up两种。Scale Out(横向扩展):是指Application可以在水平方向上扩展。一般对数据中心的应用而言,Scale out指的是当添加更多的机器时,应用仍然可以很好的利用这些机器的资源来提升自己的效率从而达到很好的扩展性。Scale Up(纵向扩展):是指Appli...转载 2019-01-11 16:16:51 · 553 阅读 · 0 评论 -
优化SQL语句的一般步骤详情
1.通过show status 命令了解各种SQL的执行频率。格式:show [session|global]status;其中:session(默认)表示当前连接, global表示自数据库启动至今show status;show global status;show status like 'com_%';show global status like 'com...原创 2019-01-07 16:24:44 · 142 阅读 · 0 评论 -
MySQL分区技术
一、什么是表分区通俗地讲表分区是将一大表,根据条件分割成若干个小表。mysql5.1开始支持数据表分区了。 如:某用户表的记录超过了600万条,那么就可以根据入库日期将表分区,也可以根据所在地将表分区。当然也可根据其他的条件分区。二、为什么要对表进行分区为了改善大型表以及具有各种访问模式的表的可伸缩性,可管理性和提高数据库效率。分区的一些优点包括:与单个磁盘或文件系统分区相比,...转载 2019-01-07 17:15:22 · 1060 阅读 · 0 评论 -
MySQL主从复制
数据库复制 replication 的实现原理:1:主服务器凡运行语句,都产生一个二进制日志 binlog2:从服务器不断读取主服务器的binlog3:从服务器读取到的binlog转换为自身可执行的relaylog4:执行relaylog实现步骤:1.首先确保主服务器打开二进制日志功能,这样,主服务器一旦有数据变化,立即产生二进制日志2.从服务器也需要开启二进制日志和r...转载 2019-01-08 10:57:29 · 99 阅读 · 0 评论 -
MySQL优化
今天,数据库的操作越来越成为整个应用的性能瓶颈了,这点对于Web应用尤其明显。关于数据库的性能,这并不只是DBA才需要担心的事,而这更是我们程序 员需要去关注的事情。当我们去设计数据库表结构,对操作数据库时(尤其是查表时的SQL语句),我们都需要注意数据操作的性能。这里,我们不会讲过多的 SQL语句的优化,而只是针对MySQL这一Web应用最多的数据库。希望下面的这些优化技巧对你有用。为查询缓...转载 2019-01-08 15:13:44 · 151 阅读 · 0 评论 -
MySQL的索引
什么是索引索引是在存储引擎中实现的,因此每种存储引擎的索引都不一定完全相同,并且每种存储引擎也不一定支持所有索引类型。根据存储引擎定义每个表的最大索引数和最大索引长度。所有存储引擎支持每个表至少16个索引,总索引长度至少为256字节。大多数存储引擎有更高的限制,MYSQL目前提供了一下4种存储类型的索引。常用的存储类型有两种:BTREE和HASH,具体和表的存储引擎相关;MYISAM和Inno...转载 2019-01-08 16:20:36 · 158 阅读 · 0 评论 -
MySQL子查询join连接union
where型子查询指把内层查询的结果作为外层查询的比较条件,典型题:查询id最大,最贵商品如果where 列 =(内层sql),则内层sql返回的必须是单行单列,单个值;如果where 列 in(内层sql),则内层sql只返回单列,可以多行。 --查出本网站最新的(goods_id最大)的一条商品--按goods_id desc排序,再取第一行select goods_...转载 2019-01-08 17:53:36 · 287 阅读 · 0 评论 -
MySQL常用基本操作
连接数据库并查看库mysql -uusername -ppassword //连接mysql mysql> show dateabases; //查看库mysql> use 库名 //选择库查看库下面所有表mysql> show tables; 创建库:create database 数据库名 [charset 字符集]mysql> ...转载 2019-01-08 18:02:44 · 261 阅读 · 0 评论 -
一千行 MySQL 详细学习笔记
Windows服务-- 启动MySQL net start mysql-- 创建Windows服务 sc create mysql binPath= mysqld_bin_path(注意:等号与值之间有空格)连接与断开服务器mysql -h 地址 -P 端口 -u 用户名 -p 密码SHOW PROCESSLIST -- 显示哪些线程正在运行SHOW VAR...转载 2019-01-11 14:40:10 · 118 阅读 · 0 评论