Mysql

同時創建多個mysql臨時表是不是很糟糕?

  • January 8, 2013

我需要進行大量的統計分析以向使用者提供一些數據。目前,我從 mysql 擷取數據並通過PHP數組處理它們。但是,mysql 臨時表要好得多(比 PHP 數組更高效、更快;顯然是由於它們的機制)。

我暫定的解決方案是在每個請求(即連接)時形成一個臨時表來導入和處理數據。但是,我不確定同時創建多個臨時表是否有缺點?

這會給mysql伺服器帶來問題嗎?或者我可以在眾多同時請求中使用它作為 PHP 數組的替代品?

您想盡可能避免製作臨時表:防止複製到臨時表(sql)

它們在 MySQL 複製中效果不佳:如何為 MySQL 臨時表更新 binlogs?

由於臨時表是數據庫世界中的一個事實,您可能必須進行一些非正統的更改以適應它們的存在。

通常,mysqld 習慣於將 tmp 表放在配置tmpdir/tmp的地方或任何地方。這通常在一些毫無戒心的可憐的磁碟上。

一個有趣的替代方法是設置 RAM 磁碟並重新配置tmpdir以使用它

步驟 01:為 RAM 磁碟創建掛載點

mkdir /var/tmpfs

步驟 02 : 將 RAM 磁碟添加到 /etc/fstab (16GB)

echo "none   /var/tmpfs              tmpfs   defaults,size=16g        1 2" >> /etc/fstab

STEP 03 : 將此行添加到 /etc/my.cnf

[mysqld]
tmpdir=/var/tmpfs

步驟 04 : 啟用 RAM 盤

您可以執行以下操作之一:

  1. 只需重新啟動數據庫伺服器
  2. mount -t tmpfs -o size=16g none /var/tmpfs

在執行此操作之前,請確保您有足夠的 RAM

試一試 !!!

引用自:https://dba.stackexchange.com/questions/29636