<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>MySQL on</title><link>https://harryzhang.cn/tags/mysql/</link><description>Recent content in MySQL on</description><generator>Hugo</generator><language>zh-CN</language><lastBuildDate>Sat, 25 Mar 2023 15:15:48 +0000</lastBuildDate><atom:link href="https://harryzhang.cn/tags/mysql/index.xml" rel="self" type="application/rss+xml"/><item><title>MySQL 连接错误问题解决</title><link>https://harryzhang.cn/2023-03-25/mysql-connection-errors/</link><pubDate>Sat, 25 Mar 2023 15:15:48 +0000</pubDate><guid>https://harryzhang.cn/2023-03-25/mysql-connection-errors/</guid><description>&lt;h2 id="软件环境"&gt;软件环境&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;操作系统：Ubuntu16.04-server&lt;/li&gt;
&lt;li&gt;MySQL版本：5.7.25&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="故障一"&gt;故障一&lt;/h2&gt;
&lt;p&gt;只能通过localhost登录MySQL&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;报错如下&lt;/li&gt;
&lt;/ol&gt;
&lt;blockquote&gt;
&lt;p&gt;$mysql -h172.16.0.1 -uroot -p123456
mysql: [Warning] Using a password on the command line interface can be insecure.
ERROR 1130 (HY000): Host &amp;lsquo;172.16.0.1&amp;rsquo; is not allowed to connect to this MySQL server&lt;/p&gt;</description></item><item><title>MySQL ORDER BY 如何实现排序的?</title><link>https://harryzhang.cn/2023-03-25/mysql-order-by-sorting/</link><pubDate>Sat, 25 Mar 2023 15:12:42 +0000</pubDate><guid>https://harryzhang.cn/2023-03-25/mysql-order-by-sorting/</guid><description>&lt;h2 id="mysql是如何进行排序的"&gt;MySQL是如何进行排序的？&lt;/h2&gt;
&lt;p&gt;假设有一个表t结构如下图所示：
&lt;img
 class="lazyload"
 src="https://harryzhang.cn/svg/loading.min.svg"
 data-src="https://upload-images.jianshu.io/upload_images/14151453-c7aec6166a2d984f.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240"
 data-srcset="https://upload-images.jianshu.io/upload_images/14151453-c7aec6166a2d984f.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240, https://upload-images.jianshu.io/upload_images/14151453-c7aec6166a2d984f.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240 1.5x, https://upload-images.jianshu.io/upload_images/14151453-c7aec6166a2d984f.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240 2x"
 data-sizes="auto"
 alt="https://upload-images.jianshu.io/upload_images/14151453-c7aec6166a2d984f.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240"
 title="https://upload-images.jianshu.io/upload_images/14151453-c7aec6166a2d984f.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240" /&gt;&lt;/p&gt;
&lt;p&gt;id为主键，type上建有索引，那么如果要查类型为1，val最小的1000行，那么SQL语句如下：
&lt;code&gt;SELECT type, val, detail FROM t WHERE type = 1 ORDER BY val LIMIT 1000;&lt;/code&gt;&lt;/p&gt;</description></item><item><title>MySQL 脏页刷盘</title><link>https://harryzhang.cn/2023-03-25/mysql-dirty-page-flush/</link><pubDate>Sat, 25 Mar 2023 15:12:03 +0000</pubDate><guid>https://harryzhang.cn/2023-03-25/mysql-dirty-page-flush/</guid><description>&lt;h2 id="什么是脏页"&gt;什么是脏页？&lt;/h2&gt;
&lt;p&gt;InnoDB在处理更新语句时，先写内存再写redo log，并不会立即将数据页的更新落地到磁盘（WAL机制），这就会产生升内存数据页和磁盘数据页的数据不一致的情况，这种数据不一致的数据页称为&lt;strong&gt;脏页&lt;/strong&gt;，当脏页写入到磁盘（这个操作称为flush）后，数据一致后称为干净页。&lt;/p&gt;</description></item><item><title>MySQL 索引原理详解</title><link>https://harryzhang.cn/2023-03-25/mysql-index-principles/</link><pubDate>Sat, 25 Mar 2023 15:11:48 +0000</pubDate><guid>https://harryzhang.cn/2023-03-25/mysql-index-principles/</guid><description>&lt;h2 id="索引的底层实现"&gt;索引的底层实现&lt;/h2&gt;
&lt;p&gt;InnoDB存储引擎数据结构使用B+树&lt;/p&gt;
&lt;h3 id="b树"&gt;B+树&lt;/h3&gt;
&lt;p&gt;B+数据的基本结构如下图
&lt;img
 class="lazyload"
 src="https://harryzhang.cn/svg/loading.min.svg"
 data-src="https://upload-images.jianshu.io/upload_images/14151453-8fa2fd1bbc4b7f13.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240"
 data-srcset="https://upload-images.jianshu.io/upload_images/14151453-8fa2fd1bbc4b7f13.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240, https://upload-images.jianshu.io/upload_images/14151453-8fa2fd1bbc4b7f13.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240 1.5x, https://upload-images.jianshu.io/upload_images/14151453-8fa2fd1bbc4b7f13.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240 2x"
 data-sizes="auto"
 alt="https://upload-images.jianshu.io/upload_images/14151453-8fa2fd1bbc4b7f13.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240"
 title="https://upload-images.jianshu.io/upload_images/14151453-8fa2fd1bbc4b7f13.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240" /&gt;&lt;/p&gt;
&lt;h3 id="为什么选用b树"&gt;为什么选用B+树&lt;/h3&gt;
&lt;p&gt;MySQL为什么要选B+树作为存储结构呢，与B树相比有哪些优点？&lt;/p&gt;</description></item><item><title>MySQL 中一条 SQL 语句是如何执行的？</title><link>https://harryzhang.cn/2023-03-25/mysql-how-sql-executes/</link><pubDate>Sat, 25 Mar 2023 15:11:22 +0000</pubDate><guid>https://harryzhang.cn/2023-03-25/mysql-how-sql-executes/</guid><description>&lt;h2 id="sql语句执行的经过"&gt;SQL语句执行的经过&lt;/h2&gt;
&lt;p&gt;从用户发起请求，到服务接口调用MySQL驱动，MySQL服务器执行完SQL语句返回结果中间发生了什么？首先放一张图来看整个过程使用到的各个组件，然后再对各个过程进行分析。&lt;/p&gt;</description></item><item><title>MySQL 和 NoSQL基础知识概述</title><link>https://harryzhang.cn/2023-03-25/mysql-nosql-overview/</link><pubDate>Sat, 25 Mar 2023 15:10:58 +0000</pubDate><guid>https://harryzhang.cn/2023-03-25/mysql-nosql-overview/</guid><description>&lt;h2 id="mysql"&gt;MySQL&lt;/h2&gt;
&lt;h3 id="索引"&gt;索引&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;B+Tree&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;平衡树，查找树，所有叶子节点位于同一层&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;进行查找时首先再根节点进行二分查找，找到一个key所在的指针，然后递归的在指针所指向的节点进行查找，直到查到叶子节点，然后在叶子节点二分查找，找出key所对应的data&lt;/p&gt;</description></item><item><title>数据库基础知识概述</title><link>https://harryzhang.cn/2023-03-25/database-fundamentals/</link><pubDate>Sat, 25 Mar 2023 15:10:28 +0000</pubDate><guid>https://harryzhang.cn/2023-03-25/database-fundamentals/</guid><description>&lt;h3 id="事务"&gt;事务&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;ACID&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;原子性&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;隔离性&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;一致性&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;持久性&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;应对系统崩溃，可以用Redo Log恢复&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;AUTOCOMMIT：MySQL默认采用自动提交，不显示start transaction，每个查询都会被当成一个事务执行并自动提交&lt;/p&gt;</description></item></channel></rss>