因为SQL只有在运行时才会解析局部变量,但优化程序不能将访问计划的选择推迟到运行时;它必须在编译时进行选择。然 而,如果在编译时建立访问计划,变量的值还是未知的,因而无法作为索引选择的输入项。 很多时候用 exists 代替 in 是一个好的选择: 并不是所有索引对查询都有效,SQL是根据表中数据来进行查询优化的,当索引列有大量数据重复时,SQL查询可能不会去利用索引,如一表中有字段 sex,
FROM information_schema.tablesWHERE table_schema NOT IN ('information_schema', 'performance_schema', 'mysql SCHEMA_NAME));--tableSELECT table_schema, table_nameFROM information_schema.TABLESWHERE table_schema NOT IN ('mysql t.TABLE_SCHEMA = p.CONSTRAINT_SCHEMAWHERE t.table_schema NOT IN ('performance_schema', 'information_schema', 'mysql `', table_name, '`ENGINE=InnoDB ;')FROM information_schema.tablesWHERE table_schema NOT IN ('sys', 'mysql table_name, '`ROW_FORMAT =DYNAMIC ;')FROM information_schema.TABLESWHERE table_schema NOT IN ('sys', 'mysql
数据库的操作 sql语句要以分号 ; 结尾 显示数据库版本 select version(); 显示时间 select now(); 查看所有数据库 show databases; 创建数据库 -- create
[TOC] Mysql 字段替换 update article set Content=replace(Content,’blog.weiyigeek.top’,’www.weiyigeek.top' https://www.cnblogs.com/wanglijun/p/8883875.html https://www.cnblogs.com/mianbaoshu/p/11821112.html Mysql 7Edefault-5-119209246-blog-121381885.pc_relevant_multi_platform_whitelistv3&utm_relevant_index=10 查看mysql table and column names You can turn off this feature to get a quicker startup with -A Database changed mysql 658247MB | +———–+ 1 row in set, 1 warning (2.93 sec) 其他混杂存储过程 | 全方位认识 sys 系统库 转载 , 表别名 https://dev.mysql.com
MySQL 常用 SQL 语句 查询数据 SELECT * FROM table_name WHERE condition; SELECT column1, column2 FROM table_name total_spent / order_count AS avg_order_value FROM customer_stats WHERE order_count > 1; 优化技巧 为常用查询字段添加索引 使用 EXPLAIN 分析查询性能 EXPLAIN SELECT * FROM orders WHERE customer_id = 100; 避免 SELECT *,只查询必要字段 以上 SQL 语句和分析案例涵盖了 MySQL 在数据分析中的常见应用场景,可根据实际需求调整查询条件和分析维度。
1141181855320596481 查询所有的数据库 SELECT schema_name FROM information_schema.schemata 权限添加 存储过程权限添加 grant select on mysql.proc can drop a procedure grant execute on testdb.* to developer@’192.168.0.%’; show grants for am@'%' mysql set authentication_string=PASSWORD("jltSz1tboExi92t&Qct%6J14") where user="root"; flush privileges; mysql 修改密码 (8.0) ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'yfgj@2020#admin'; flush privileges
varchar(30) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; 忘记了mysql 密码 修改配置文件 [mysqld] datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock # ADD skip-name-resolve skip-grant-tables 然后重启MySQL服务并免密码登录 service mysqld restart mysql 执行修改密码SQL 将root用户的密码统一设为'admin' UPDATE mysql.user SET Password=password('123456') WHERE User='root'; 还原MySQL配置文件并重启服务 修改用户登录HOST UPDATE mysql.user
MySQL常用SQL语句 记录一些常用的MySQL语句,方便查找翻阅。 1. 查看MySQL数据库磁盘占用大小 select TABLE_SCHEMA as '数据库', concat(truncate(sum(data_length)/1024/1024,2),'MB') 查看MySQL数据库中表的磁盘占用 select table_schema as '数据库', table_name as '表名', table_rows as '记录数', truncate MySQL创建、删除用户,授权、撤销授权 create user user@host identified by 'password'; # 授权 grant all privileges on db.table privileges on test.* from 'user'@'host'; #删除用户 drop user 'test'@'127.0.0.1'; # 刷新权限使授权生效 flush privileges; MySQL
information_schema.innodb_locks; 5、当前锁堵塞情况 select * from information_schema.innodb_lock_waits; 6、当前锁等待详细信息 select it.trx_mysql_thread_id information_schema.innodb_locks il,information_schema.processlist pl where it.trx_id = il.lock_trx_id and it.trx_mysql_thread_id 功能 set global profiling=on; 11、查看用户信息 select user,host,password from mysql.user group by user; 12、分表时批量生成 from information_schema.TABLES where TABLE_NAME like 'table_%'; (注意:PERFORMANCE_SCHEMA是在5.5开始新增一个数据库,MySQL5.5 performance_schema.table_io_waits_summary_by_index_usage WHERE INDEX_NAME IS NOT NULL AND COUNT_STAR = 0 AND OBJECT_SCHEMA <> 'mysql
UNSIGNED NOT NULL DEFAULT 0, //设置默认列值 >PRIMARY KEY(id) >)ENGINE=InnoDB //设置表的存储引擎,一般常用 BETWEEN a AND b、NOT AND 、OR Linke()用法中 % 为匹配任意、 _ 匹配一个字符(可以是汉字) IS NULL 空值检测 八、MySQL 的正则表达式: 1、Mysql支持REGEXP的正则表达式: >SELECT * FROM tb_name WHERE name REGEXP ‘^[A-D]’ //找出以A-D 为开头的 九、MySQL的一些函数: 1、字符串链接——CONCAT() >SELECT CONCAT(name,’=>’,score) FROM tb_name 2、数学函数:
删除表数据 truncate table book;#删除表中所有数据 delete from book where xx=yy;#根据条件删除表中数据 查询 select * from book; 常用函数
1、多表联级查询并分组 ---- MySql数据库中 –1、查询重复数据– select *, sum(1) as total from t_businessman group by longitude distinct * from t_businessman; where longitude = '39.808475' and latitude = '116.49746'; PS:distinct关键字儿在MySql
## 常用sql语句整理:mysql 1. 常用命令 – 登陆: mysql -h host -u username -p – 列出数据库:SHOW DATABESES; – 列出表:SHOW TABLES; – 列出表结构:DESC table_name – 导出:mysqldump -h 127.0.0.1 -u root -p “database_name” “table_name” –where=”condition” > file_name.sql `user`(`Host`, `User`, `authentication_string`) value(‘localhost’, ‘username’, password(‘pwd’)) ### mysql 5.7 新增用户 “` // 插入新用户 insert into mysql.user(Host, User, authentication_string, ssl_cipher, x509_issuer
pos/len:从哪个位置开始裁剪几位 # substring同理 instr:返回子串第一次出现的索引,如果没有则返回0 SELECT INSTR('蔡不菜','蔡') # 输出 1 (mysql 2020年02月17日 datediff:两个日期天数之差 SELECT DATEDIFF(NOW(),'2020-02-12') # 输出 5 其他函数 VERSION:查看mysql
因为SQL只有在运行时才会解析局部变量,但优化程序不能将访问计划的选择推迟到运行时;它必须在编译时进行选择。然而,如果在编译时建立访问计划,变量的值还是未知的,因而无法作为索引选择的输入项。 from b) 用下面的语句替换: select num from a where exists(select 1 from b where num=a.num) 14、并不是所有索引对查询都有效,SQL 是根据表中数据来进行查询优化的,当索引列有大量数据重复时,SQL查询可能不会去利用索引,如一表中有字段sex,male、female几乎各一半,那么即使在sex上建了索引也对查询效率起不了作用。 22、临时表并不是不可使用,适当地使用它们可以使某些例程更有效,例如,当需要重复引用大型表或常用表中的某个数据集时。但是,对于一次性事件,最好使用导出表。
导读之前发过一些mysql常用语句; 但有些mysql的语句还不错,虽然不常用,至少我不常用.DO功能: 执行表达式,但是没有返回值语法: 就是do跟上表达式即可DO expr [, expr] ... -----+----------+| 3 | 4 |+----------+----------+1 row in set (0.00 sec)RESTART上一章我们讲了mysql 的信号量处理, 里面有关SIGUSR2是表示重启的,而mysql本身就支持重启命令(8.0), 原理也是退出的时候设置退出状态码为16, 然后mysqld_safe之类的根据退出状态码进行启动逻辑可参考如下 sec)(root@127.0.0.1) [db1]> show global status like 'uptime';ERROR 2013 (HY000): Lost connection to MySQL /doc/refman/8.0/en/sql-statements.html
在很多时候,我们需要通过SQL语句来查看MySQL执行SQL的情况,例如查看SQL执行队列,是否存在慢查询等等。 先看下基础配置,监控mysql执行的sql语句需要先开启相关日志 linux系统 可以在/etc/mysqld中添加如下: 指定日志路径 log =/usr/local/mysql/mysql.log mysql_log.sql" (这里路径自定义即可) 然后,重新启动mysql,就可以实时看到myql服务器当前正在执行的语句了。 常用的SQL,用于诊断排查问题 注:下列SQL在执行时,可能还需要你开启MySQL相应的配置项,请根据提示进行配置 1. 查看某条sql各阶段执行时间,可开启profiling功能 set global profiling=on; 其他的,大家可以去搜索下,更多的SQL性能分析、调优方面的常用语句 大家可以自己动手去试试上面的语句
测试必备的Mysql常用sql语句系列 https://www.cnblogs.com/poloyy/category/1683347.html 需要注意,创建数据库和创建表的语句博文都在前面哦 整个系列都是相互关联的哈 知识点 这里乍眼一看表名取别名没用,其实是很有用的,只是现在还没讲;表名取别名的常用场景:条件查询,子查询,多表查询
测试必备的Mysql常用sql语句系列 https://www.cnblogs.com/poloyy/category/1683347.html 前言 实际工作中,每次查询基本都是需要结合多个表去查询数据 ,所以Mysql的多表查询我们必须掌握 多表查询可以是两张表,也可以是很多张表,取决于需要查询的数据要关联多少张表 有哪些多表查询 cross join:交叉连接 inner join:内连接 left 获取左表所有记录 右表为空的字段补null right join 获取右表所有记录 左表为空的字段补null union 获取左右表所有记录 cross join 两张表的笛卡尔积 执行SQL
Mysql并发参数调整 从实现上来说,MySQL Server 是多线程结构,包括后台线程和客户服务线程。多线程可以有效利用服务器资源,提高数据库的并发性能。 4.2 back_log back_log 参数控制MySQL监听TCP端口时设置的积压请求栈大小。 4.3 table_open_cache 该参数用来控制所有SQL语句执行线程可打开表缓存的数量, 而在执行SQL语句时,每一个SQL执行线程至少要打开 1 个表缓存。 常用SQL技巧 6.1 SQL执行顺序 编写顺序 SELECT DISTINCT <select list> FROM <left_table> <join_type> JOIN 常用函数 数字函数 函数名称 作 用 ABS 求绝对值 SQRT 求二次方根 MOD 求余数 CEIL 和 CEILING 两个函数功能相同,都是返回不小于参数的最小整数,即向上取整 FLOOR 向下取整