瀏覽分類:

資料庫

淺談資料庫正規化

把前段時間沒搞懂的第二正規化跟,第三正規化搞懂了,順便筆記一下

 

資料庫的發明,是為了快速讀取或寫入當下所需的資料

像是進入部落格的首頁,伺服器端就會向資料庫query出每篇文章的摘要,再送回用戶的瀏覽器

想像如果等10秒才載入完畢,那我的部落格豈還有人會等著載入完看嗎

因此,將所有資料塞在同個table顯然不一定是好的選擇

而將資料分門別類獨立出不同table儲存的動作即稱為資料庫正規化

適當的資料庫正規化有助於提升query效能
但是當過度得正規化則會讓邊際效益呈負的

閱讀更多

[MySQL / MariaDB] CSV檔匯入資料表

最近有從網路上下載CSV檔案,並且匯入資料庫準備拿來做分析的需求

一開始嘗試用phpMyAdmin裡的匯入功能

但是因為要經過分析轉譯,匯入速度實在不敢恭維

加上登入的session又會timeout,好不容易跑了10萬筆就被中斷,功虧一簣Orz

嘗試了數種方法,最後還是決定回到正統用SQL語法操作的方式。

LOAD DATA LOCAL INFILE  '/path/to/example.csv'
INTO TABLE table_name
CHARACTER SET UTF8
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n'
IGNORE 1 ROWS;

P.S.

  • 用terminal進mysql後,記得先use myDatabase;到正確的資料庫下再進行操作。

  • 換行符號因作業系統而異,也有可能是\r\n

[資料庫] 關聯介紹 一對一、一對多、多對多

前言

會想要寫這篇是因為最近在摸php框架laravel

在ORM的地方間接學到了資料庫的Relationships

才發現以前好傻好天真,竟然規劃出這樣的table…

別懷疑我真的幹過這種蠢事@@

posts跟tags其實是多對多的關係

應該要建立一個intermediary table才是正確的做法((以下會詳細說明

因此,必須好好筆記一下最近學到的資料庫Relationships

閱讀更多