<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>MySQL &#8211; Larry的午茶時光</title>
	<atom:link href="https://blog.yuyansoftware.com.tw/tag/mysql/feed/" rel="self" type="application/rss+xml" />
	<link>https://blog.yuyansoftware.com.tw</link>
	<description></description>
	<lastBuildDate>Wed, 26 Nov 2025 03:17:48 +0000</lastBuildDate>
	<language>zh-TW</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0.3</generator>

<image>
	<url>https://blog.yuyansoftware.com.tw/wp-content/uploads/2022/10/favicon-45x45.png</url>
	<title>MySQL &#8211; Larry的午茶時光</title>
	<link>https://blog.yuyansoftware.com.tw</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>MySQL Key 與 Index 的差異？Primary 與 Unique key 的差異？Unique key 能否為 null？</title>
		<link>https://blog.yuyansoftware.com.tw/2018/10/mysql-key-index/</link>
		
		<dc:creator><![CDATA[Larry]]></dc:creator>
		<pubDate>Mon, 15 Oct 2018 03:44:00 +0000</pubDate>
				<category><![CDATA[好文記錄與分享]]></category>
		<category><![CDATA[軟體開發隨筆]]></category>
		<category><![CDATA[MySQL]]></category>
		<guid isPermaLink="false"></guid>

					<description><![CDATA[Key 與 index 的差異？Key 包含了兩個功能 1. 約束 (constraint) 2. 索引 (index), 也就是 key 功能上包含了 index. 以 Primary key 來說，他的特性是 1. Unique constraint. 2. Each table can only have one Primary key. 3. Cannot be null.]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">圖片來源 <a href="https://zh.wikipedia.org/wiki/MySQL" target="_blank" rel="noreferrer noopener nofollow">https://zh.wikipedia.org/wiki/MySQL</a></p>



<p class="wp-block-paragraph">之前看到一篇關於 MySQL index / key 的文章，以中文 MySQL 文章來說，larry 覺得寫得滿好的，分享給大家<br><a href="https://blog.csdn.net/nanaMasuda/article/details/52543177" target="_blank" rel="noreferrer noopener nofollow">https://blog.csdn.net/nanaMasuda/article/details/52543177</a><br>(文章內的「索引」就是 index)</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">&#8220;索引被用來快速找出在一個列上用一特定值的行。沒有索引，MySQL不得不首先以第一條記錄開始並然後讀完整個表直到它找出相關的行。&#8221;</p>
</blockquote>



<p class="wp-block-paragraph">文章第一句就點出 index 的主要功能：快速檢索。為啥可以快速檢索？因為 MySQL index 會建一物理結構 BTree 加快檢索，也可以想成是用空間換取速度。</p>



<h2 class="wp-block-heading">Key 與 Index 的差異？</h2>



<h3 class="wp-block-heading">Key 包含了兩個功能</h3>



<ol class="wp-block-list">
<li>約束 (constraint)，包含本文下方提到的 Unique constraint.</li>



<li>索引 (index)，也就是 key 功能上包含了 index.</li>
</ol>



<h2 class="wp-block-heading">Primary 與 Unique key 的差異？</h2>



<h3 class="wp-block-heading">Primary key 的特性是</h3>



<ol class="wp-block-list">
<li>Unique constraint.</li>



<li>Each table can only have one Primary key.</li>



<li>Cannot be null. </li>
</ol>



<h3 class="wp-block-heading">Unique key 的特性是</h3>



<ol class="wp-block-list">
<li>Unique constraint.</li>



<li>Each table can have multiple Unique&nbsp;keys.</li>



<li>Can be null. </li>
</ol>



<p class="wp-block-paragraph">當然，請記得所有的 key 都包含 index 的功能。</p>



<h2 class="wp-block-heading">Unique key 能否為 null？</h2>



<p class="wp-block-paragraph">larry 有做一些實驗跟查找文章<br><a href="http://www.mysqltutorial.org/mysql-unique/" target="_blank" rel="noreferrer noopener nofollow">http://www.mysqltutorial.org/mysql-unique/</a></p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">&#8220;Unlike other database systems, MySQL considers NULL values as distinct values. Therefore, you can have multiple NULL values in the UNIQUE index.<br><br>This is how MySQL was designed. It is not a bug even though it was reported as a bug.&#8221;</p>
</blockquote>



<p class="wp-block-paragraph">所以以 MySQL 來說，Unique key 是可以為 null 的。</p>



<p class="wp-block-paragraph">相關文章：<a href="https://blog.yuyansoftware.com.tw/2015/12/mysql-server-mac/">MySQL server 在 Mac 上關不掉的問題</a></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>MySQL server 在 Mac 上關不掉的問題</title>
		<link>https://blog.yuyansoftware.com.tw/2015/12/mysql-server-mac/</link>
		
		<dc:creator><![CDATA[Larry]]></dc:creator>
		<pubDate>Mon, 21 Dec 2015 06:15:00 +0000</pubDate>
				<category><![CDATA[軟體開發隨筆]]></category>
		<category><![CDATA[MySQL]]></category>
		<guid isPermaLink="false">http://test234.yuyansoftware.com.tw/2015/12/21/mysql-server-%e5%9c%a8-mac-%e4%b8%8a%e9%97%9c%e4%b8%8d%e6%8e%89%e7%9a%84%e5%95%8f%e9%a1%8c/</guid>

					<description><![CDATA[MacOS 系統在開機時會 load 上述路徑的 plist files, 然後要特別注意你的 plist file 是否有 KeepAlive, RunAtLoad 兩個 tag, 如果你不希望該 service keep alive 或 run at load 的話，請做適當的設定。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">圖片來源 <a href="https://zh.wikipedia.org/wiki/MySQL" target="_blank" rel="noreferrer noopener nofollow">https://zh.wikipedia.org/wiki/MySQL</a></p>



<p class="wp-block-paragraph">這兩天一直在處理一個很詭異的問題，如題：MySQL server 在 Mac 上關不掉。</p>



<p class="wp-block-paragraph">試了直接砍 process，不行，系統會產生新的 mysql process。搜尋了不少文章後，才發現<a href="https://blog.yorkxin.org/posts/2011/08/04/osx-launch-daemon-agent/" target="_blank" rel="noreferrer noopener nofollow">這篇文章</a></p>



<p class="wp-block-paragraph">由上面連結得知，Mac 開機/登入時的 services 有分：</p>



<ul class="wp-block-list">
<li>Launch Daemon</li>



<li>Launch Agent</li>
</ul>



<p class="wp-block-paragraph">Launch Daemon 在開機時動作，Launch Agent 在使用者登入時動作。</p>



<p class="wp-block-paragraph">到底什麼是 <strong>Launch Daemon</strong> 呢？其實就是以下這些路徑下的 plist (property list) files:<br>/System/Library/LaunchDaemons<br>/Library/LaunchDaemons</p>



<p class="wp-block-paragraph">系統在開機時會 load 上述路徑的 plist files, 然後要特別注意你的 plist file 是否有 KeepAlive, RunAtLoad 兩個 tag, 如果你不希望該 service keep alive 或 run at load 的話，請做適當的設定。</p>



<p class="wp-block-paragraph">上面連結也有提到 <strong>Launch Agent</strong> plist file 的路徑：<br>/System/Library/LaunchAgents<br>/Library/LaunchAgents<br>~/Library/LaunchAgents</p>



<p class="wp-block-paragraph">總之可以看一下上述幾個路徑底下的 plist file 和其中的設定，像是 mysql 的 plist file 就是在 /Library/LaunchDaemons, 如底下連結所敘：<br><a href="https://dev.mysql.com/doc/refman/5.1/en/osx-installation-launchd.html" target="_blank" rel="noreferrer noopener nofollow">https://dev.mysql.com/doc/refman/5.1/en/osx-installation-launchd.html</a></p>



<p class="wp-block-paragraph">因為 Larry 將 mysql plist file 刪掉後，再重開機，MySQL server 關不掉的問題就不會再犯了，所以就沒有繼續實驗下去。不過照上文推斷，MySQL server 關不掉的問題應該在裝 MySQL 客戶端工具時就一直存在了…</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
