红穆笔记
首頁 程序筆記 pbootcms sqlite數據庫轉換爲mysql數據庫
程序筆記 PbootCms

pbootcms sqlite數據庫轉換爲mysql數據庫

pbootcms sqlite数据库转换为mysql数据库

爲什麼要轉換爲mysql數據庫?

當數據庫中的數據量達到萬級別時,使用SQLite和MySQL會有以下區別:

  1. 性能:SQLite是一種嵌入式數據庫,適用於輕量級應用程序,它使用磁盤文件存儲數據,並且只有一個連接。相比之下,MySQL是一種完整的客戶端/服務器關係型數據庫管理系統,能夠支持多個連接,並且具有更高的性能和擴展性。

  2. 併發訪問:當多個用戶同時訪問數據庫時,SQLite可能會出現鎖定的情況,從而導致性能下降。MySQL使用行級鎖定和讀寫鎖定來處理併發訪問,因此具有更好的性能和可伸縮性。

  3. 數據安全性:SQLite具有較小的安全風險,因爲它不支持多用戶訪問,所有的訪問都是通過一個進程進行的。MySQL提供了更強大的安全功能,包括用戶身份驗證、訪問控制和數據加密等。

  4. 數據庫容量:SQLite的數據庫容量有限,通常適用於小型應用程序。相比之下,MySQL可以處理大容量的數據集,因此更適用於大型應用程序。

  5. 可擴展性:MySQL是一種可擴展性較強的數據庫,可以使用分片等技術來處理大規模數據集。SQLite不具備這樣的可擴展性。

綜上所述,當數據量達到萬級別時,MySQL通常是更好的選擇,因爲它具有更好的性能、併發訪問能力、數據安全性和可擴展性。

如何選擇兩者數據庫?

SQLite和MySQL是兩種不同類型的數據庫管理系統,各有其適用的場景。

SQLite:

  1. 輕量級應用程序:SQLite是一種嵌入式數據庫,適用於輕量級應用程序,可以輕鬆集成到應用程序中,不需要獨立的數據庫服務器。

  2. 單用戶應用程序:SQLite不支持多用戶訪問,所有的訪問都是通過一個進程進行的,適合於單用戶應用程序。

  3. 本地存儲:SQLite使用磁盤文件存儲數據,適合於本地存儲和單機應用程序。

  4. 數據量較小:SQLite的數據庫容量有限,適合於數據量較小的應用程序。

MySQL:

  1. 互聯網應用程序:MySQL是一種客戶端/服務器關係型數據庫管理系統,適用於互聯網應用程序,可以處理大容量的數據集和高併發訪問。

  2. 多用戶訪問:MySQL支持多用戶訪問,具有併發訪問能力和高性能,適合於多用戶訪問的應用程序。

  3. 數據量較大:MySQL可以處理大容量的數據集,適合於數據量較大的應用程序。

  4. 數據安全性要求高:MySQL提供了更強大的安全功能,包括用戶身份驗證、訪問控制和數據加密等,適合於數據安全性要求高的應用程序。

綜上所述,SQLite適用於輕量級應用程序、本地存儲和單用戶應用程序,而MySQL適用於互聯網應用程序、多用戶訪問和數據量較大的應用程序。

pbootcms如何轉換數據庫?

pbootcms這個開源程序,使用的人也不少,我也在使用,但是由於很多時候,一開始就用的sqlite數據庫,後來數據量大了後,發現mysql性能更好,所以想要轉換數據庫,但是這時卻發現,sqlite數據庫轉換爲MySQL的工具貌似並不好用!

我參考了網上很多人推薦的工具,SQLiteStudio應用程序或者是Navicat Premium ,效果並不好!

原因主要爲,導出的數據庫很不好,需要你手動刪除轉換的sql文件內的一些語句,或者是一些表的結構並沒轉換好!

究其種種原因,所以我決定拋棄上面的兩種方法!

我選擇PHP轉換法!

思路很簡單,將官網的sql文件導入數據庫,然後清空所有表,這樣就解決了sqlite轉換mysql時,表結構的問題!

接下來,我利用PHP,同時鏈接mysql和sqlite數據庫,將相同表的數據進行轉換,將sqlite的數據獲取,並生成insert語句,插入到mysql裏面!

這樣一來,便可以很好的將sqlite數據轉換到mysql,並且數據完整,不會出現數據遺漏或者報錯之類的,比軟件轉換快捷,而且轉換效果更好!

轉換的PHP代碼爲:

🔒 隱藏內容:會員可查看

<?php

// 配置 MySQL 數據庫連接信息
$mysql_host = "localhost";
$mysql_username = "24qiutv24qiutv";
$mysql_password = "cnGekNxCka8AW4d";
$mysql_database = "24qiutv24qiutv";

// 配置 SQLite 數據庫連接信息
$sqlite_file = "./iq470_cn_20d3e7c4a2911eca376c399217db598e.db";

// 配置 SQL 文件路徑
$sql_file = "pbootcms_v324.sql";

// 連接 MySQL 數據庫
$mysqli = new mysqli($mysql_host, $mysql_username, $mysql_password, $mysql_database);

// 檢查連接是否成功
if ($mysqli->connect_error) {
    die("連接 MySQL 數據庫失敗:" . $mysqli->connect_error);
}

// 刪除 MySQL 數據庫的所有表
if ($mysqli->query("SHOW TABLES") !== false) {
    $tables = $mysqli->query("SHOW TABLES")->fetch_all();
    foreach ($tables as $table) {
        $table_name = $table[0];
        $mysqli->query("DROP TABLE $table_name");
    }
}

// 導入指定的 SQL 文件到 MySQL 數據庫
$sql_content = file_get_contents($sql_file);
if ($mysqli->multi_query($sql_content) !== false) {
    do {
        $mysqli->store_result();
    } while ($mysqli->more_results() && $mysqli->next_result());
}

// 清空 MySQL 數據庫的所有表數據
if ($mysqli->query("SHOW TABLES") !== false) {
    $tables = $mysqli->query("SHOW TABLES")->fetch_all();
    foreach ($tables as $table) {
        $table_name = $table[0];
        $mysqli->query("DELETE FROM $table_name");
    }
}

// 連接 SQLite 數據庫
try {
    $pdo = new PDO("sqlite:" . $sqlite_file);
} catch (PDOException $e) {
    die("連接 SQLite 數據庫失敗:" . $e->getMessage());
}

// 檢查連接是否成功
if (!$pdo) {
    die("連接 SQLite 數據庫失敗");
}

// 檢查 SQLite 和 MySQL 是否有相同的表
if ($pdo->query("SELECT name FROM sqlite_master WHERE type='table'") !== false) {
    
    $tables = $pdo->query("SELECT name FROM sqlite_master WHERE type='table'")->fetchAll(PDO::FETCH_NUM);
    print_r($tables);
    
    foreach ($tables as $table) {
        $table_name = $table[0];
        if ($mysqli->query("SHOW TABLES LIKE '$table_name'")->num_rows > 0) {
            // 如果 MySQL 和 SQLite 存在相同的表,則將 SQLite 數據插入到 MySQL 對應表中
            $rows = $pdo->query("SELECT * FROM $table_name");
            while ($row = $rows->fetch(PDO::FETCH_ASSOC)) {
                $keys = implode(",", array_keys($row));
                $values = implode(",", array_map(function ($value) use ($mysqli) {
                    return "'" . $mysqli->real_escape_string($value) . "'";
                }, array_values($row)));
                $mysqli->query("INSERT INTO $table_name ($keys) VALUES ($values)");
                echo "INSERT INTO $table_name ($keys) VALUES ($values)";
            }
        }
    }
}

// 關閉數據庫連接
$mysqli->close();
$pdo = null;

不懂PHP代碼的不建議轉換,加站長QQ,有償幫助!

微信赞赏

微信

支付宝赞赏

支付寶

✍️ 作者: 紅穆

網站管理員 · 感謝閱讀,更多精彩內容敬請關注

作者主頁 查看主頁 →

相關文章

Pbootcms幻灯片代码

Pbootcms幻燈片代碼 程序筆記 PbootCms

幻燈片調用例子:{pboot:slide num=3 gid=1} &lt;a href=&quot;[slide:link]&quot; target=&quot;_blank&quot;&gt;&lt;img src=&quot;[slide:src]&quot; alt=&quot;[slid…
👁 179
pbootcms 网站留言功能的添加

pbootcms 網站留言功能的添加 程序筆記 PbootCms

留言板標籤適用範圍:全站任意地方均可使用標籤作用:用於用戶提交留言和調取留言記錄1、留言提交表單&lt;form action=&quot;{pboot:msgaction}&quot; method=&quot;post&quot;&gt; 聯繫人:&lt;input type=&quot;tex…
👁 174
pbootcms引入公共文件代码

pbootcms引入公共文件代碼 程序筆記 PbootCms

1、模板文件嵌套引用{include file=***.html}使用說明:可以嵌套使用,如:index.html 嵌套一個head.html,同時head.html中嵌套comm.html支持使用子目錄,如:{include file=comm/*.html}2、時間格式化標籤style=*如:內…
👁 235

推薦閱讀

(自适应手机端)工商注册类网站pbootcms模板 财务代理记账网站源码下载 0343

(自適應手機端)工商註冊類網站pbootcms模板 財務代理記賬網站源碼下載 0343 實用收藏 pbootcms模板

一款自適應手機端的工商註冊與財務代理記賬PbootCMS網站模板。設計風格簡潔專業,適合財稅公司展示記賬報稅、工商註冊等一站式服務。有助於財務服務機構在線上建立品牌形象,獲取企業客戶。模板展示 安裝說明 網站後臺:/admin.php 賬號:admin 密碼:admin 解壓密碼:www.4s5.c…
👁 40
帝国cms 多条件查询之IN查询

帝國cms 多條件查詢之IN查詢 程序筆記 帝國cms

在帝國cms中,偶然需要用到in查詢,也就是多條件查詢中的:在使用這個的時候,發現IN查詢並不能查詢到我的結果,於是翻找PHP代碼,發現下面的函數里需要修改!function SearchDoKeyboard($f,$hh,$keyboard){ // print_r($keyboard);echo…
👁 223
响应式轴承生产厂家类网站模板 0616

響應式軸承生產廠家類網站模板 0616 實用收藏 易優模板

此套eyoucms響應式模板適用於軸承生產廠家類行業,設計風格專業精密,能夠展示軸承產品、技術參數及工業應用。有助於軸承製造企業在線上展示產品實力,吸引工業客戶。模板展示 安裝說明 網站後臺:/login.php 賬號:admin 密碼:admin 相關文章易優CMS安裝常見問題總結易優CMS(Ey…
👁 48
(自适应手机端)生活服务类网站模板 本地信息服务网站源码下载 1056

(自適應手機端)生活服務類網站模板 本地信息服務網站源碼下載 1056 實用收藏 pbootcms模板

一款生活服務類與本地信息服務PbootCMS網站模板,支持PC與WAP端。設計風格清新實用,適合展示本地生活服務信息、分類廣告及商家黃頁。有助於本地信息平臺在線上吸引用戶與商家入駐。模板展示 安裝說明 網站後臺:/admin.php 賬號:admin 密碼:admin 解壓密碼:www.4s5.cn…
👁 56
(自适应手机端)广告品牌策划公司网站pbootcms模板 广告品牌策划设计公司网站源码下载 0345

(自適應手機端)廣告品牌策劃公司網站pbootcms模板 廣告品牌策劃設計公司網站源碼下載 0345 實用收藏 pbootcms模板

本套自適應手機端的廣告品牌策劃與設計公司PbootCMS網站模板。設計風格創意營銷,適合廣告公司、品牌策劃機構展示案例與創意能力。有助於廣告公司在線上吸引品牌客戶,拓展業務。模板展示 安裝說明 網站後臺:/admin.php 賬號:admin 密碼:admin 解壓密碼:www.4s5.cn相關文章…
👁 62