使用shell脚本来给mysql加索引的方法
用shell脚本来给mysql加索引
刚好用到, mark一下:
#! /bin/bash tb_base=tb_student_ arr=("0" "1" "2" "3" "4" "5" "6" "7" "8" "9" "a" "b" "c" "d" "e" "f") GetCmd() { for value in ${arr[@]} do for value2 in ${arr[@]} do tb_name=$tb_base$value$value2 cmd="ALTER TABLE ${tb_name} ADD INDEX seed (uid, name); " echo $cmd done done } GetCmd $1
上面的结果就是要执行的语句,done.
嗯, tb_student_
和"tb_student_"
都可以
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对我们的支持。如果你想了解更多相关内容请查看下面相关链接
相关推荐
-
详解MySQL是如何解决幻读的
一.什么是幻读 在一次事务里面,多次查询之后,结果集的个数不一致的情况叫做幻读. 而多出来或者少的哪一行被叫做 幻行 二.为什么要解决幻读 在高并发数据库系统中,需要保证事务与事务之间的隔离性,还有事务本身的一致性. 三.MySQL 是如何解决幻读的 如果你看到了这篇文章,那么我会默认你了解了 脏读 .不可重复读与可重复读. 1. 多版本并发控制(MVCC)(快照读) 多数数据库都实现了多版本并发控制,并且都是靠保存数据快照来实现的. 以 InnoDB 为例,每一行中都冗余了两个字断.一个是行的
-
MySQL执行update语句和原数据相同会再次执行吗
背景 本文主要测试MySQL执行update语句时,针对与原数据(即未修改)相同的update语句会在MySQL内部重新执行吗? 测试环境 MySQL5.7.25 Centos 7.4 binlog_format为ROW 参数 root@localhost : (none) 04:53:15> show variables like 'binlog_row_image'; +------------------+-------+ | Variable_name | Value | +------
-
Mysql查询很慢卡在sending data的原因及解决思路讲解
因为编写了一个Python程序,密集的操作了一个Mysql库,之前数据量不大时,没发现很慢,后来越来越慢,以为只是数据量大了的原因,但是后来慢到不能忍受了,查了半天,索引能用的都用上了,执行一次还是要3到4秒,不能忍受了. 于是把一些可以缓存的查询全部用redis缓存了起来,大大加速了应用. 但是还是有一些没办法缓存的,或者说,每次查询都是不一样的结果的就没办法了.用navicat的查询概况可以看到卡住的地方是在:Sending data一段,用时3.5秒,占了99%的查询时间. 在网上查了一些
-
Mysql开启慢SQL并分析原因
第一步.开启mysql慢查询 方式一:修改配置文件 Windows:Windows 的配置文件为 my.ini,一般在 MySQL 的安装目录下或者 c:\Windows 下. Linux:Linux 的配置文件为 my.cnf ,一般在 /etc 下 在 my.ini 增加几行: [mysqlld] long_query_time=2 #5.0.5.1等版本配置如下选项 log-slow-queries="mysql_slow_query.log" #5.5及以上版本配置如下选项 s
-
想取消错误的mysql命令怎么办?
敲了一个错误的mysql命令, 想取消怎么办? 如果用ctrl + c, 就直接退出了.怎么办呢?来看看: mysql> show tables; \c +-------------------+ | Tables_in_db_test | +-------------------+ | tb_test | | tb_test_ex | +-------------------+ 2 rows in set (0.00 sec) mysql> show tables \c mysql>
-
详解使用navicat连接远程linux mysql数据库出现10061未知故障
使用使用navicat连接远程linux mysql数据库出现10061未知故障,设置使用ssh连接后出现2013故障 本机环境:win10 navicat premium mysql数据库主机环境:Linux version 4.15.0-42-generic (buildd@lgw01-amd64-023) (gcc version 7.3.0 (Ubuntu 7.3.0-16ubuntu3)) #45-Ubuntu SMP Thu Nov 15 19:32:57 UTC 2018 mysq
-
解决MySQl查询不区分大小写的方法讲解
问题 最近,在用SSH框架完成一个实践项目时,碰到了一个莫名其妙的Bug困扰了我好久,最后终于解决,记录如下. 问题:同学在测试系统的时候突然发现,数据库保存的账户本来应该是admin,结果该同学用Admin账户居然登录成功了-- --EXM???这样也行?好吧,我还是查找这个Bug发生的原因吧.然后就是各种排查程序的过程,找来找去也没发现什么问题.终于想到,不用hql,自己写sql语句在数据库里面直接查询试试,结果果然发现了问题所在: select * from user where user
-
详解mysql数据库增删改操作
插入数据 insert into 表名(列名1,列名2,列名3) values(值1,值2,值3); insert into user(user_id,name,age) values(1,'nice',24); 简单写法可以省去字段名,但是要插入全部字段. 批量插入 单条插入和批量插入的效率问题 mysql多条数据插入效率大于单条数据插入 删除记录 delete from 表名 [where 条件] 如果没有指定条件,会将表中数据一条一条全部删除掉. delete删除数据和truncate删除
-
MySQL字符集乱码及解决方案分享
前言 字符集是一套符号和编码的规则,不论是在oracle数据库还是在mysql数据库,都存在字符集的选择问题,而且如果在数据库创建阶段没有正确选择字符集,那么可能在后期需要更换字符集,而字符集的更换是代价比较高的操作,也存在一定的风险,所以,我们推荐在应用开始阶段,就按照需求正确的选择合适的字符集,避免后期不必要的调整. 实战 1.安装MySQL数据库 2.乱码演示 mysql> show variables like 'character_set%'; +-------------------
-
Mysql优化策略(推荐)
总的来说: 1.数据库设计和表创建时就要考虑性能 2.sql的编写需要注意优化 3.分区.分表.分库 设计表的时候: 1.字段避免null值出现,null值很难查询优化且占用额外的索引空间,推荐默认数字0代替null. 2.尽量使用INT而非BIGINT,如果非负则加上UNSIGNED(这样数值容量会扩大一倍),当然能使用TINYINT.SMALLINT.MEDIUM_INT更好. 3.使用枚举或整数代替字符串类型 4.尽量使用TIMESTAMP而非DATETIME 5.单表不要有太多字段,建议
随机推荐
- Angular 4.X开发实践中的踩坑小结
- 在ASP.NET里得到网站的域名
- 基于apicloudAJAX请求代码合集
- jquery提升性能最佳实践小结
- Python文件和流(实例讲解)
- Android利用GridView实现单选功能
- 深入Java7的一些新特性以及对脚本语言支持API的介绍
- vue制作加载更多功能的正确打开方式
- ipv6实现udp编程示例
- SQL Server存储过程的基础说明
- windows系统下node.js环境配置与安装教程图文详解(详细版)
- java递归菜单树转换成pojo对象
- jQuery实现背景滑动菜单
- jQuery UI Bootstrap是什么?
- IE6下js通过css隐藏select的一个bug
- IOS 基础之nil,NULL,NSNULL区别详解
- Java 对象序列化 NIO NIO2详细介绍及解析
- java序列化与反序列化操作实例分析
- Android编程判断应用程序是否已安装的方法
- Android实现通讯录效果——获取手机号码和姓名