小编Rol*_*DBA的帖子

mysql备份策略?

我们有一个 innodb mysql 数据库,所以我们迷失了许多不同的 mysql 备份策略。有人谈论mysqldump,有人谈论第三方工具。有些表我们还计划运行分区。有什么好工具可以帮助完成这项任务?

mysql innodb mysqldump backup

6
推荐指数
1
解决办法
6900
查看次数

如何使用不同的 tmp 目录与 MySQL 进行 INTO OUTFILE 选择?

我正在尝试使用 SELECT ... INTO OUTFILE 查询转储一个大表(40GB,600,000 行)。我想使用它,因为我希望我的结果以特定方式排序(因此 mysqldump 不够好)。

问题是,我收到错误代码 28。我很确定这是因为默认 /tmp 位置的磁盘空间不足。如果我可以在运行时指定用于 tmp 的位置,我在其他地方的磁盘上有足够的空间。

我发现我可以通过修改 my.cnf 来更改 tmpdir,但是我没有足够的服务器权限来修改它或重新启动 mysqld。

这里的解决方案是什么?

编辑:一些答案建议使用 mysql -e。我可能不得不走这条路并对我的文件进行后处理。我想使用 SELECT ... INTO OUTFILE 的原因是因为我想

fields   terminated by '\t'
         escaped by '\\'
lines    terminated by '\r\n' ;
Run Code Online (Sandbox Code Playgroud)

mysql mysqldump backup

6
推荐指数
2
解决办法
1万
查看次数

SQL Server 事务日志初始数据加载

最初使用 5GB+ 填充数据库以避免大型事务日志时的标准流程是什么?根据我的理解,日志文件会在初始加载后跳转到较大的大小,并且从那时起磁盘空间不会减少。定期事务日志备份将释放文件中的空间,但文件仍会很大。

那么是否建议将目标数据库设置为简单备份,加载数据,使用 CHECKPOINT 截断日志,然后将数据库设置为完全备份模式?

此外,我知道可以对日志执行收缩文件操作,但有人说永远不要使用它,其他人似乎建议将其作为解决方案。有什么想法吗?

sql-server backup logs

6
推荐指数
1
解决办法
577
查看次数

带有多个字段分隔符的 MySQL 导入 CSV

我正在尝试将此 CSV 文件导入 MySQL,该文件似乎可选地由多个字符括起来。不幸的是,MySQL 只支持一个字符作为字段分隔符。

我被困在 SQL 中完成整个过程,因为它是更大程序的一部分 - 所以脚本是不可能的。

数据示例:

   reportdata, commission, total, chargeback, company
   ",123,""$116.00 "",""$604.00 "",""($88.00)"", foo
Run Code Online (Sandbox Code Playgroud)

除了尝试在临时表上执行一堆字符串操作之外,我感到很困惑。

有任何想法吗?

mysql import csv

6
推荐指数
1
解决办法
3141
查看次数

我需要索引我分区的键吗?

我有一个 InnoDB 客户表,按 KEY 分区,每个分区是一个美国州。我有电话号码索引,性能很棒。我们还需要在给定的美国州中按姓氏进行 SELECT。我应该在姓氏 AND 状态上创建索引,还是没有意义,因为表已经按状态分区了?

这是否会占用不必要的空间,因为 InnoDB 应该已经知道哪个分区是哪个状态,并且它只需要在该分区中找到与姓氏匹配的所有行?

我们没有做任何连接......这只是一个简单的查询,如下所示:

SELECT * FROM table WHERE lastname = "Smith" AND state="NY"
Run Code Online (Sandbox Code Playgroud)

mysql innodb index partitioning mysql-5.5

6
推荐指数
1
解决办法
3271
查看次数

面对有点乱序的插入,innodb 的碎片有多严重?

假设 (field1, field2) 上有一个复合主键

另外,让 X 是一组理论的 n 个数字

插入看起来像这样:

INSERT INTO table(field1, field2)
VALUES([a number picked at random from X], [an incrementing number]);
Run Code Online (Sandbox Code Playgroud)

每插入 m 个数字,从 X 中随机删除一个数字,并随机添加另一个数字。

假设 n=1000 和 m=500。换句话说,每插入 500 次,集合 X 中的一个元素就会改变,但集合 X 总是有 1000 个元素。

B+树会变得多么支离破碎?

mysql innodb

6
推荐指数
1
解决办法
1661
查看次数

MySQL 5.6.8 中的 my-*.cnf 发生了什么?

在 MySQL 5.6.7 之前,官方 RPM附带这些文件:

/usr/share/mysql/my-innodb-heavy-4G.cnf
/usr/share/mysql/my-medium.cnf
/usr/share/mysql/my-huge.cnf
/usr/share/mysql/my-large.cnf
/usr/share/mysql/my-small.cnf
Run Code Online (Sandbox Code Playgroud)

在5.6.8中,这些文件都没有了,只剩下一个:

/usr/share/mysql/my-default.cnf
Run Code Online (Sandbox Code Playgroud)

我不是 MySQL 调优专家,过去总是以my-innodb-heavy-4G.cnf. 现在我只剩下一个配置选项:

# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
# innodb_buffer_pool_size = 128M
Run Code Online (Sandbox Code Playgroud)

调整这个变量是大多数优化的关键,还是在安装新服务器时我应该调整其他相关参数?

在这种情况下,我在哪里可以找到等效的文件,该文件将包含仅 InnoDB 的 4GB RAM 专用 MySQL 服务器的合理默认值?

mysql my.cnf

6
推荐指数
1
解决办法
2万
查看次数

将 MySQL 5.0 Master 复制到 5.5 Slave?

我们正在计划一系列服务器/软件升级并且很好奇。

我们有一个运行 MySQL 5.0 的 RHEL5 安装,我们希望将其复制到运行 CentOS 6 和 MySQL 5.5 的新(虚拟化)服务器。然后,将来我们会将 RHEL5 机器撞到 CentOS6 和 MySQL5.5。如果可能,我们希望首先进行此复制。

所以简短的问题是,有没有人尝试将 MySQL 5.0 主服务器复制到 5.5 从服务器?

mysql replication mysql-5.5 mysql-5.0

6
推荐指数
1
解决办法
3351
查看次数

如何防止应用程序中发生死锁?

我正在 PHP 框架(Codeigniter 2.1.0)中开发 LMS 应用程序。我正在使用 MySQL 数据库。数据库中的所有表都有innodb引擎。我还在每个表上创建了索引。现在我正在本地使用 Jmeter 2.9 版同时对 200 个用户进行负载测试。在负载测试期间,在特定页面操作中,我遇到了Deadlock Found错误。我将原始查询更改为新查询,但再次发生相同的错误。

我已经编写了 save_interactions 函数,它需要四个参数交互数组、module_id、course_id、user_id & 被 AJAX 脚本调用了很多次。如果特定的interaction_id 不存在于该表中,则以下脚本将插入记录,否则更新查询将被触发。

public function save_interactions($interaction_array,$modid,$cid,$uid)
{
    foreach($interaction_array as $key=>$interact_value)
    {
        $select_query = $this->db->query("SELECT COUNT(*) AS total FROM `scorm_interactions` WHERE `mod_id`='".$modid."' AND `course_id`='".$cid."' AND `user_id`='".$uid."' AND `interaction_id`='".$interact_value[0]."'");
        $fetchRow = $select_query->row_array();

        if($fetchRow['total']==1)
        {
            $update_data = array(
                        "interaction_type"=>$interact_value[1],
                        "time"=>$interact_value[2],
                        "weighting"=>$interact_value[3],
                        "correct_response"=>$interact_value[4],
                        "learner_response"=>$interact_value[5],
                        "result"=>$interact_value[6],
                        "latency"=>$interact_value[7],
                        "objectives"=>$interact_value[8],
                        "description"=>$interact_value[9]
            );
            $this->db->where('mod_id', $modid);
            $this->db->where('course_id', $cid);
            $this->db->where('user_id', $uid);
            $this->db->where('interaction_id', $interact_value[0]);
            $this->db->update('scorm_interactions', $update_data);
        }else
        {
            $insert_data = …
Run Code Online (Sandbox Code Playgroud)

mysql innodb deadlock

6
推荐指数
1
解决办法
9015
查看次数

此更新,选择组合查询线程安全吗?

我有一张桌子叫做座位,它有这样的架构

身份证号

对于每个用户,我取一个随机未使用的 id 并分配给该用户,这里为简单起见,我使已使用 =1。我正在使用的查询

   update seats u inner join  (
        SELECT id from seats  
        where taken is null limit 1) s 
   on s.id = u.id set taken = 1;
Run Code Online (Sandbox Code Playgroud)

此查询随机获取一个带有标记为空的席位,对于该席位,它使标志为 1。虽然此查询工作正常,但此线程安全吗?

考虑这种情况,我有两个并行的用户。对于 user1,我选择第 X 行,就在运行更新查询之前,user2 签入,对于该用户,select 查询返回与 user1 相同的行。所以我将结束两次更新同一行。

此查询是否可能出现这种情况?

mysql locking update

6
推荐指数
1
解决办法
1852
查看次数