Skip to content

Zeroplex 生活隨筆

軟體開發、伺服器和生活瑣事

小 縮小字型大小。 中 重設字型大小。 大 放大字型大小。

分類: 未分類

SQL Server 行行好

Posted on 2021 年 8 月 19 日2021 年 8 月 19 日 By 日落 在〈SQL Server 行行好〉中尚無留言

拜託跟我說一下這樣是正確還是錯誤,難不成要我通靈嗎???

Tags:MSSQL

MySQL 透過 LOAD DATA 塞資料

Posted on 2021 年 8 月 16 日2021 年 8 月 16 日 By 日落 在〈MySQL 透過 LOAD DATA 塞資料〉中尚無留言

若有文字檔等大檔案,寫 parser 再建立 insert into 的語法來塞資料速度不算快。簡單格式的檔案 (如一行一筆資料或 comma 分隔等) 可以透過 LOAD DATA 來將資料塞進 table 中。

LOAD DATA 需要特殊權限,請先檢查 my.cnf 檔案中是否已允許該語法:

[mysql]

# enable LOAD FILE syntax
local-infile = 1

再來是檔案內容,這邊的範例是一行一筆資料:

alice
bob
cell
......

確定資料格式以後,建立一個暫時的 table 供匯入使用:

CREATE TABLE tmp (
  str varchar(50)
);

注意,匯入速度要快的話,臨時的 table 不要設定任何 trigger、primary key、index 等,不然會有大量的 disk I/O 拖慢速度。

最後就是下指令來將檔案中的內容匯入資料庫中:

LOAD DATA LOCAL INFILE '/path/to/file/simple-data.txt' into table tmp;

資料都匯入臨時的 table,就可以使用 INSERT INTO … SELECT 語法來將資料拉進正式環境了:

INSERT INTO words (`word`) 
  SELECT (`str`) FROM tmp
Tags:MySQL

OXOPO 1.5v 充電 鋰電池

Posted on 2021 年 8 月 9 日2021 年 8 月 9 日 By 日落 在〈OXOPO 1.5v 充電 鋰電池〉中尚無留言

因為身邊有不少電子產品、遙控器等器材,所以在 10 年前就開始使用鎳氫充電電池。但使用充電電池比較頭大的,應該就是鎳氫電池的供電電壓在 1.2V 而已,因此充滿電的電池相較於鹼性電池的 1.5V 電壓算是偏低,甚至部份器材會直接說電池電量偏低。

這幾天在找東西的時候,無意間發現台灣廠商做出了 1.5V 的 3 號、4 號鋰電池,可以讓電壓維持在 1.5V 左右,並且有過度放電保護,會在電池用盡之前自動斷電。而 OXOPO 家則是使用鋰電池的一些特性,取代原有 3 號、4 號電池的電池。

More “OXOPO 1.5v 充電 鋰電池” »

Tags:生活雜記

產生短網址的 string ID

Posted on 2021 年 8 月 6 日2021 年 8 月 13 日 By 日落 在〈產生短網址的 string ID〉中尚無留言

在約 15 年前有嘗試想要自己做一個縮網址服務 (現在我做加長網址服務 XD),當時用來產生 string ID 的方法有弱點,被學弟抓出來打爆 (可以被預測下一個產生出來的 ID,然後建立 unliminted redirection)。最近摸到 crunch 這個工具,在重新思考以後,終於搞清楚向 ppt.cc 請教時得到的說明是什麼意思。

先說明有問題的作法,先建立 valid characters list,URL 有部份特出字元是 reserve character (RFC3986),所以像是 ?、=、@ 等字元有特殊用途不能被拿來當作參數傳遞,然後做「N 進位」轉成 string ID:

<?php

$char = ['a', 'b', 'c', '.....', '7', '8', '9', '0'];

例如:數字是 1 時,產生出來的 ID 是 a、數字是 116 時產生出來的 ID 是 a1。當時我是依照流水號,所以 ID 是可以被預測的,導致弱點被利用。

當時得到 ptt.cc 的回覆是「先產生完 key 再隨機選取可用的 key」。

這陣子才搞懂這個說明,先用 crunch 之類的工具把所有可用的 string 都先產生出來,然後需要時再隨機選取一個 string 來當作 key/ID 使用。這個作法有些優點:

  • 不需要先產生所有的 key,因為大概可以推算出大概可用的 ID 數量
  • 隨機挑選 key 就無法被猜到未來會被用到的 key,不容易被攻擊

接下來要傷腦筋的,大概就是怎麼樣有效率的從 DB 隨機取 key 了。

ps. 目前使用 3 個 digits,大概就有 20 多萬個 unique string 可用了,爽。

Tags:資訊學習

在 SQL server 建立 Linked Database 連線到 MySQL

Posted on 2021 年 7 月 29 日2021 年 7 月 29 日 By 日落 在〈在 SQL server 建立 Linked Database 連線到 MySQL〉中有 1 則留言

SQL server 並不支援 MySQL 連線或查詢,但可以透過 ODBC 和 SQL server 的「Linked Database」功能將 query 轉送至 MySQL 執行。

SQL server 是透過 MSDASQL 功能來與 ODBC 連線,所以建立連線前要先做好 ODBC 資料來源設定和 MSDASQL 的設定。ODBC 的 MySQL 來源設定可以參考弊站稍早「安裝 MySQL ODBC driver」的說明,MSDASQL 的設定必須先透過 SSMS 的 sa 帳號,從「物件總管」=>「伺服器物件」=>「連結的伺服器」=>「提供者」=>「MSDASQL」點選右鍵,檢視「屬性」,檢查是否需要特殊的設定 (一般用途使用預設值即可):

圖一:MSDASQL 的功能設定畫面

確認 MSDASQL 的參數均正確後,在「連結的伺服器」點選右鍵「新增連結的伺服器」開始設定新的連線。在資料來源選項中要注意「提供者 (provider)」必須選擇「ODBC drivers」,資料來源的名稱必須與 ODBC 中的資料來源名稱一致 (注意名稱中的英文大小寫及符號):

圖二:新增連結的伺服器「資料來源」設定

More “在 SQL server 建立 Linked Database 連線到 MySQL” »

Tags:MSSQL

文章分頁

上一頁 1 ... 54 55 56 ... 318 下一頁

其他

關於我  (About me)

  文章 RSS Feed

  留言 RSS Feed

Apache AWS Bash C/C++ Docker FreeBSD GCP Git Google Java JavaScript Laravel Linux Microsoft MSSQL MySQL Nginx PHP PHPUnit PostgreSQL Python Qt Ubuntu Unix Vim Web Windows WordPress XD 作業系統 分享 好站推薦 專題 攝影 新奇搞笑 新聞 旅遊 生活雜記 程式設計 網路架站 網頁設計 資訊學習 資訊安全 遊戲 音樂


創用 CC 授權條款
本著作係採用創用 CC 姓名標示-相同方式分享 4.0 國際 授權條款授權.