利用python脚本进行mysql数据库(表)传输
Usage Example: 1234567Copy 整个 database:python mysql_transfer.py --src-host=127.0.0.1 --src-user=root --src-password=123 --src-db=源db \ --tgt-host=127.0.0.1 --tgt-user=root --tgt-password=456 --tgt-db=目标dbCopy 指定 tables:python mysql_transfer.py --src-host=127.0.0.1 --src-user=root --src-password=123 --src-db=源db \ --tgt-host=127.0.0.1 --tgt-user=root --tgt-password=456 --tgt-db=目标db --tables source_table1:target_table1 source_table2:target_table2 Python...
关于mysql死锁
关于MySQL的死锁 MySQL的死锁指的是两个事务互相等待的场景,这种循环等待理论上不会有尽头。 比如事务A持有行1的锁,事务B持有行2的锁,然后事务A试图获取行2的锁,事务B试图获取行1的锁,这样事务A要等待事务B释放行2的锁,事务B要等待事务A释放行1的锁,两个事务互相等待,谁也提交不了。 这种情况下MySQL会选择中断并回滚其中一个事务,使得另一个事务可以提交。MySQL会记录死锁的日志。 制造一个死锁的场景新建一个表,添加两条数据: 创建两个事务,事务执行的sql分别是: 事务A: 1234set autocommit=0;update medicine_control set current_count=1 where id='1';update medicine_control set current_count=1 where id='2';COMMIT; 事务B: 1234set autocommit=0;update medicine_control set current_count=2 where...
sql语句优化的一些方法
sql语句优化的一些方法避免全表扫描对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。 避免在 where 子句中使用!=或<>操作符应尽量避免在 where 子句中使用!=或<>操作符,否则将引擎放弃使用索引而进行全表扫描。 避免在 where 子句中对字段进行 null 值判断应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如: 12345select id from t where num is null可以在num上设置默认值0,确保表中num列没有null值,然后这样查询:select id from t where num=0 避免在 where 子句中使用 or 来连接条件应尽量避免在 where 子句中使用 or 来连接条件,否则将导致引擎放弃使用索引而进行全表扫描,如: 123456789select id from t where num=10 or num=20可以这样查询:select id from...
记录binlog的使用
配置文件 先看配置文件 启用了才有这样的记录默认是没有的 linux系统中的 /etc/my.cnf my.cnf内容:log-bin = mysqlbin # 默认配置,mysqlbin 为binlog文件名称 binlog文件一般放在/var/lib/mysql比如上面的设置重启数据库会生成mysqlbin.000001文件,并放在/var/lib/mysql下 自定义文件存放位置修改配置文件,vi /etc/my.cnf,找到log-bin的部分配置自动清理在my.cnf文件中,这个文件路径不知道的话执行mysql --help | grep 'Default options' -A 1,就会列出文件的路径来 然后重启service mysql restart,去新建的目录下看看,已经有最新的日志了 下面列几个常用的命令查看bin_log相关信息show variables like '%log_bin%'; 查看日志开启状态show variables like...
mysql数据库设计规范
数据库设计基本规范数据库 采用InnoDB引擎,禁用其他类型引擎 采用utf8mb4字符集 只允许访问所属数据库,禁止跨库访问 禁止临时任务表长期存在于数据库中 创建数据库/表的时候,还要对排序规则进行审查: 需要区分特殊字符:默认的general_ci 更快,但是unicode_ci 更准确,utf8mb4_general_ci中S=ß,而utf8mb4_unicode_ci中ss=ß ,这种情况unicode_ci能准确判断(参考:http://mysql.rjweb.org/utf8mb4_collations.html) 大小写敏感:默认的general_ci大小写不敏感,utf8mb4_unicode_ci大小写不敏感,但utf8mb4_bin...
MySQL用户权限总结
转自: https://blog.csdn.net/yeahPeng11/article/details/121584343 一、MySQL用户权限 MySQL版本5.7 背景 在开发过程中数据库安装在云服务器,本地连接阿里云服务器中的MySQL就不能直接root用户连接,而每次数据库操作都要使用新建的用户与用户进行交互操作。 在使用非root用户的时,执行本地的sql文件,就需要一些权限,比如 SELECT,INSERT,UPDATE,DELETE,CREATE...
mysql集群部署
Mysql常见集群方式 Mysql-MMM(mysql主主复制管理器) MHA(Mysql高可用方面是一个相对成熟的方案) InnoDB Cluster(支持自动Failover,强一致性,读写分离,读库高可用,读请求负载均衡,推荐方案) 主从同步创建Master实例并启动123456docker run -p 3307:3306 --name mysql-master \-v /mydata/mysql/master/log:/var/log/mysql \-v /mydata/mysql/master/data:/var/lib/mysql \-v /mydata/mysql/master/conf:/etc/mysql \-e MYSQL_ROOT_PASSWORD=root \-d mysql:5.7 参数说明: 123-p 3307:3306:将容器的3306映射到主机的3307端口-v 挂载-e 初始化root用户密码 修改master基本配置123456789101112131415161718vim...
clickhouse简述
clickhouse什么是clickhouse?优势是什么,为什么选择ch? 全称 :Click Stream Data WareHouse 简称ClickHouse 是一个用于联机分析(OLAP)的列式数据库管理系统(DBMS)。 ClickHouse的核心特性 ClickHouse拥有完备的管理功能,所以它称得上是一个DBMS(Database Management...
clickhouse常用函数
group_concat(distinct xxx)1groupUniqArray(toString(xxx)) :得到的是数组 列转行1groupArray(xxx) :得到的是数组 合并数组成一个字符串1arrayStringConcat(arr, separator) 行转列1arrayJoin(groupArray(xxx)) 去重函数1arrayDistinct(array) 将数组拼接成一行12arrayConcat(array):此函数只有一个数组参数,无法设置分割符,可使用arrayStringConcat(array,'分隔符')设置分隔符 结果的最后一个1anyLast(xxx) 取出现次数前(3)的值1topK(3)(xxx) 复杂函数,过滤数组,取其中不等于a的第一个值1arrayElement(arrayFilter(x ->...
关于clickhouse分区问题
最近项目在尝试clickhouse集群部署,但是我们在做etl的时候,有个表想着为了加快响应速度,建立了分区,所以对分区知识进行了二次调研首先分区并不能加快查询速度,而更加适用于更新或者删除数据用.分区数量限制由max_partitions_per_insert_block控制,默认是100当插入数据到100以上的时候,会报错提示 12345678DB::Exception: Too many partitions for single INSERT block (more than 100). The limit is controlled by 'max_partitions_per_insert_block' setting. Large number of partitions is a common misconception. It will lead to severe negative performance impact, including slow server startup, slow INSERT queries and slow...
