Goo*_*bot 8 mysql memory mysql-5.5 temporary-tables
我需要进行大量的统计分析才能向用户提供一些数据。目前,我从 mysql 捕获数据并通过PHP数组处理它们。但是,mysql 临时表要好得多(比 PHP 数组效率更高、速度更快;显然是由于它们的机制)。
我的暂定解决方案是在每次请求(即连接)时形成一个临时表来导入和处理数据。但是,我不确定同时创建多个临时表是否有缺点?
这会给mysql服务器带来问题吗?或者我可以在众多同时请求中使用它作为 PHP 数组的替代方案?
您想尽可能避免制作临时表:防止复制到临时表 (sql)
它们在 MySQL 复制中不能很好地工作:如何为 MySQL 临时表更新二进制日志?
由于临时表是 DB 世界中的事实,您可能必须进行一些非正统的更改以适应它们的存在。
通常,mysqld 习惯将 tmp 表放置/tmp在tmpdir配置的位置或任何位置。那通常是在一些毫无戒心的糟糕磁盘上。
一个有趣的替代方法是设置一个 RAM 磁盘并重新配置tmpdir以使用它
步骤 01:为 RAM 磁盘创建挂载点
mkdir /var/tmpfs
Run Code Online (Sandbox Code Playgroud)
步骤 02:将 RAM 磁盘添加到 /etc/fstab (16GB)
echo "none /var/tmpfs tmpfs defaults,size=16g 1 2" >> /etc/fstab
Run Code Online (Sandbox Code Playgroud)
步骤 03:将此行添加到 /etc/my.cnf
[mysqld]
tmpdir=/var/tmpfs
Run Code Online (Sandbox Code Playgroud)
步骤 04:启用 RAM 盘
您可以执行以下操作之一:
mount -t tmpfs -o size=16g none /var/tmpfs在执行此操作之前,请确保您有足够的 RAM
试一试 !!!
| 归档时间: |
|
| 查看次数: |
8981 次 |
| 最近记录: |