I have table with observations of objects moving along edges in a graph, this table has the following form:
PK | TIMESTAMP | object_id | from_id | to_id
Run Code Online (Sandbox Code Playgroud)
where object_id is the id of some object and from_id and to_id are vertices.
Since the movements are observed at a high frequency the tuple
(object_id, from_id, to_id)
Run Code Online (Sandbox Code Playgroud)
is repeated often for different PK and TIMESTAMPS. I'm interested in all the separate edge traversals, so if an object with id 1 …
我的表结构:
+-----------------+--------------+------+-----+-------------------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-----------------+--------------+------+-----+-------------------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| user | varchar(100) | NO | | NULL | |
| uniq_name | varchar(100) | NO | | NULL | |
| info_name | varchar(100) | NO | | NULL | |
| delay_time | int(11) | NO | | NULL | |
| track_time | timestamp | NO | …Run Code Online (Sandbox Code Playgroud) 我想要一个不同于全局 sql_mode 的默认会话 sql_mode。
我可以手动设置,但我想自动设置。
我以为我可以将它添加到.my.cnf,但这不起作用。我尝试将它添加到 中的[mysql]组中.my.cnf,它没有抛出错误。
然而,当我连接会话 sql_mode 时,会话仍然继承全局 sql_mode。
我正在使用 MySQL 5.5.16。
我有一个小脚本,它允许我选择一个数据库和一些表,然后通过mysqldump.
目前这不包括USE 'db_name'输出文件中的语句,这是我需要包含的内容。
这是我正在使用的转储命令示例:-
mysqldump -u root db_name tbl_1 tbl_2 tbl_3 > output.sql
我在这里找到了这个问题,它描述了我遇到的相同问题,但是提供的答案对我不起作用。该USE 'db_name'语句不会写入输出的 SQL 文件。
这是从我转储的 SQL 文件之一到它启动DROP/ CREATEtable 命令的所有内容:
-- MySQL dump 10.13 Distrib 5.5.16, for Win64 (x86)
--
-- Host: localhost Database: db_name
-- ------------------------------------------------------
-- Server version 5.5.16-log
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' …Run Code Online (Sandbox Code Playgroud) 我想澄清一下--flush-privilegesmysqldump的选项。
以下是MySQL 文档中该选项的描述:
--flush-privileges
Send a FLUSH PRIVILEGES statement to the server after dumping the mysql database.
This option should be used any time the dump contains the mysql database and any other
database that depends on the data in the mysql database for proper restoration.
Run Code Online (Sandbox Code Playgroud)
当它说它在转储数据库后发送刷新语句时,我读到这意味着数据、模式等被转储到备份文件中,然后刷新语句被发送到刚刚转储的数据库(在它之后被抛弃)。
我想知道什么转储数据等需要刷新特权,所以我开始寻找解释以确定何时以及为什么使用它。
当我阅读各种答案时,我想到如果将flush 语句包含在转储文件中是有意义的。然后在将文件内容加载到数据库中后,运行刷新权限语句以在导入新信息后更新设置。
那么它是怎样工作的?
A)将数据转储到文件后刷新源数据库?如果是这样,为什么这是必要的?
B) 在导入转储文件的内容后刷新目标数据库?
C) 除了我所描述的可能性之外的其他东西?
最近我们一直在从 MyISAM 迁移到 InnoDB,我知道 MyISAM 使用针对每个表的元信息来跟踪信息等 - 但是,数据库大约 1.8GB,在 400 多个左右的表中有 1+ 百万条记录。
问题来自像 PHPMyAdmin 这样的软件运行“SHOW TABLE STATUS FROM dbase;” 执行该命令最多可能需要 50 秒。有没有办法优化这个?(MySQL 或 MariaDB)
谢谢!
我是 MySQL 的新手,我在创建BEFORE INSERT触发器时遇到了问题。
我收到一个unexpected END错误。
我有一个以verlof_aanvragen列命名的表datum(还有 6 列)。
我想要完成的只是日期介于now()+8和之间now()+365或 CURDATE() + INTERVAL 8 DAY AND CURDATE() + INTERVAL 365 DAY)
可以插入的行。日期超出该间隔的插入应该失败。
我使用的是 MySQL 5.5.24 版。
这是代码:
CREATE TRIGGER chk_dates
BEFORE INSERT ON verlof_aanvragen
FOR EACH ROW
BEGIN
IF (NEW.datum < CURDATE() + INTERVAL 8 DAY OR NEW.datum > CURDATE() + INTERVAL 365 DAY)
THEN
SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'Any Message'
END IF
END
Run Code Online (Sandbox Code Playgroud) 我们无法通过操作系统控制台访问我们的服务器。我们的生产环境是Ubuntu 12。是否可以从远程主机使用mysqltuner?如果是,请提供指南。我们使用的是mysql5.6
我正在使用 Amazon RDSdb.m1.medium实例。它至少有 40-50 个数据库和至少 10k 个表。过去一年它工作正常,但今天我正在改变一张表,它开始出现错误。我正在使用 InnoDB 格式。
当我创建表或更改表时,出现此错误:
#1041 - 内存不足;检查 mysqld 或其他进程是否使用了所有可用内存;如果没有,您可能必须使用 'ulimit' 来允许 mysqld 使用更多内存,或者您可以添加更多交换
我该如何解决?
我需要对 mysql 服务器进行性能调整并需要帮助。
我有一个专用于 MySQL 的 16G 服务器,其中有 1 个 MyISAM 表,其中大约有 200 万行,可以获取大量流量。同一个数据库上还有大约 100 个其他 innodb 表。MyISAM 表几乎是只读的,用户使用它进行搜索。
服务器的 max_connection 值为 800,在大约 300 个并发用户的负载测试下,查询时间开始显着增加。在没有负载的情况下,查询需要大约 500 毫秒才能运行。
目标是显着提高 MyISAM 表上的搜索性能。
表的大小(以 MB 为单位):
data_size index_size total engine
8991 6920 15911 InnoDB
1110 718 1829 MyISAM
Run Code Online (Sandbox Code Playgroud)
以下是我的设置:
connect_timeout 10
innodb_additional_mem_pool_size 24117248
innodb_buffer_pool_size 12G
innodb_commit_concurrency 0
innodb_flush_log_at_trx_commit 1
innodb_log_buffer_size 11534336
innodb_log_file_size 449839104
innodb_open_files 300
innodb_thread_concurrency 8
innodb_thread_sleep_delay 10000
join_buffer_size 131072
key_buffer_size 2147483648
key_cache_age_threshold 300
key_cache_block_size 1024
key_cache_division_limit 100
max_allowed_packet 134217728
max_connections 800 …Run Code Online (Sandbox Code Playgroud) mysql ×10
backup ×2
mysql-5.5 ×2
mysqldump ×2
amazon-rds ×1
date-format ×1
graph ×1
innodb ×1
mariadb ×1
memory ×1
my.cnf ×1
myisam ×1
mysqltuner ×1
performance ×1
permissions ×1
php ×1
phpmyadmin ×1
trigger ×1