Mysql
同時創建多個mysql臨時表是不是很糟糕?
我需要進行大量的統計分析以向使用者提供一些數據。目前,我從 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 盤
您可以執行以下操作之一:
- 只需重新啟動數據庫伺服器
mount -t tmpfs -o size=16g none /var/tmpfs
在執行此操作之前,請確保您有足夠的 RAM
試一試 !!!