一些小技巧:
正则表达式:REGEXP
select name,email from table where email REGEXP "@163[.,]com$;
RAND()提取随机行
select * from table order by rand() limit 5;随机排列后取出前5行
利用group by 的with rollup子句做统计
select * from table group by id,name ……with rollup;根据id,name做统计 注意:当使用rollup时,不能同时使用order by,limit用在rollup后面
bit_or和bit_and来求出所需要
系统变量lower_case_tables_name等于0,1,2来解决定义大小写问题
SQL优化:
show [session|global]status like 'com_%'; session表示session级(当前连接),global表示global级(自数据库上次启动至今),找出匹配'com_%'的统计结果
explain分析低效SQL的执行计划:
explain select * from table1 a,table2 b where……
分析表:analyze table tablename;
检查表:check table tablename;
优化表:optimize table tablename;整理一些碎片和空间浪费
在数据库不繁忙的时候执行以上3个操作
大批量插入数据:
对于MyISAM存储引擎的表:
alter tablename disable keys;开始
(可以提高速度) loading the data
alter tablename enable keys;关闭
对于InnoDB存储引擎的表:
在导入数据前执行set unique_checks=0,关闭唯一性校验,在导入结束后执行set unique_checks=1,恢复唯一性校验,可以提高速度。如果应用使用自动提交的方式,建议在导入 前执行set autocommit=0,关闭自动提交,导入结束后再执行set autocommit=1,打开自动提交,也可以提高速度。
SQL 提示:select SQL_BUFFER_RESULTS *from…… 这个语句将强制MySQL生成一个临时结果集,只要临时结果集生成后,所以表上的锁定均被释放。
1.use index 在查询语句中表名的后面,添加use index来提供希望MySQL去参考的索引列表
2.ignore index ………………………………ignore index………………忽略………………
3.force index …………………………………………指定一个特定的索引
优化表的数据类型:PROCEDURE ANALYSE()
select * from tablename procedure analyse();
数据库备份和恢复:
1.数据库备份:使用mysqldump工具
备份指定的数据库或数据库中的表: shell>mysqldump [options] db_name [tables]
备份指定的一个或多个数据库: shell>mysqldump [options] ---database DB1 [DB2 DB3 ……] [options]为数据库用户名和密码-uroot -p
备份所以数据库: shell>mysqldump [options] --all-database
2.数据库恢复:
mysql -uroot -p dbname < bakfile 注意将备份恢复后数据并不完整,还需要将备份后执行的日志进行重做
mysqlbinlog binlog-file | mysql -u root -p ***
表的导入导出:
可以使用system +操作系统命令来查看
表的导出:方法1.select *from tablename into outfile 'target_file' [option]; [option]中的参数为导出时的格式
方法2.mysqldump -u username -T target_dir dbname tablename [option];
表的导入:方法1.Load data [local] infile 'filename' into table tablename [option];
方法2.mysqlimport -u root -p*** [--local] dbname order_tab.txt [option];
忘记MySQL的root密码:
1.登录到数据库所在服务器,手工kill掉MySQL进程
kill'cat /mysql-data-directory/hostname.pid'
2.使用--skip-grant-tables选项重启MySQL服务
[root@localhost mysql]# ./bin/mysqld_safe --skip-grant-tables --user=zzx &
[1] 20881
[root@localhost mysql]# Starting mysqld daemon with databases from /home/zzx/mysql/data
3.用空密码的root用户连接到MySQL,并且更改root口令
[root@localhost mysql]# mysql -uroot
MyISAM存储引擎的表损坏:
myisamchk -r tablename
或 myisamchk -o tablename
mysql>update user set password=password('123') where='root' and host='localhost';
4.刷新权限表,使得权限认证重新生效
mysql>flush privileges;
分享到:
相关推荐
4.12.1 在 Win32 上安装 MySQL 4.12.2 在 Win95 /Win98上启动 MySQL 4.12.3 在 NT 上启动 MySQL 4.12.4 在 Win32 上运行 MySQL 4.12.5 用 SSH 从 Win32 连接一个远程MySQL 4.12.6 MySQL-Win...
MySQL中文参考手册.chm 449kb <br/>0 译者序 1 MySQL的一般的信息 1.1 什么是MySQL? 1.2 关于本手册 1.2.1 本手册中使用的约定 1.3 MySQL的历史 1.4 MySQL的主要特征 1.5...
mysql5.5、mysql5.5、mysql5.7、mysql8 各种版本最新下载合集 MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提 高了灵活性。 MySQL...
1.7.3. MySQL论坛上的MySQL社区支持 1.8. MySQL标准的兼容性 1.8.1. MySQL遵从的标准是什么 1.8.2. 选择SQL模式 1.8.3. 在ANSI模式下运行MySQL 1.8.4. MySQL对标准SQL的扩展 1.8.5. MySQL与标准SQL的差别 1.8.6. ...
├─新版MySQL DBA 课件ppt │ 第一课数据库介绍篇.pdf │ 第七课MySQL数据库设计.pdf │ 第三十一课percona-toolkits 的实战及自动化.pdf │ 第三课MySQL授权认证.pdf │ 第九课MySQL字符集.pdf │ 第二十一课MySQL...
MySQL 8.0 升级版本 在本文中,我们将详细介绍 MySQL 8.0 升级版本的步骤和注意事项。MySQL 是一个流行的开源关系数据库管理系统,广泛应用于各种Web 应用程序中。升级 MySQL 版本可以提高数据库性能、修复 bugs 和...
在C#编程环境中,连接MySQL数据库通常依赖于特定的数据提供者,这就是MySql.Data.dll和MySql.Web.dll的角色。这两个动态链接库(DLL)文件是MySQL官方提供的.NET数据访问组件,使得C#开发者能够轻松地与MySQL服务器...
mysql57驱动jar包mysql57驱动jar包mysql57驱动jar包mysql57驱动jar包mysql57驱动jar包mysql57驱动jar包mysql57驱动jar包mysql57驱动jar包mysql57驱动jar包mysql57驱动jar包mysql57驱动jar包mysql57驱动jar包mysql57...
MySQL是世界上最受欢迎的关系型数据库管理系统之一,而JDBC(Java Database Connectivity)是Java语言与数据库交互的标准接口。本文将深入探讨Mysql5.6和Mysql5.7的JDBC驱动,以及如何使用`mysql-connector-java-...
在本教程中,我们将深入探讨如何在Windows操作系统上详细安装MySQL 8.0.36.0。MySQL是一个广泛使用的开源关系型数据库管理系统(RDBMS),它在各种规模的企业和项目中扮演着核心角色。MySQL 8.0版本带来了许多性能...
MySQL ODBC 5.1 Driver 是一个用于连接MySQL数据库的开放数据库连接(ODBC)驱动程序,它允许用户通过标准的ODBC接口访问MySQL数据库,适用于Windows操作系统。这个版本是免安装的,意味着用户可以直接解压使用,...
MySQL驱动jar文件是Java应用程序与MySQL数据库之间通信的关键组件,主要功能是提供Java Database Connectivity (JDBC) API,使得Java开发者能够通过编写Java代码来执行SQL语句,从而操作MySQL数据库。标题提到的...
MySQL论坛上的MySQL社区支持 1.8. MySQL标准的兼容性 1.8.1. MySQL遵从的标准是什么 1.8.2. 选择SQL模式 1.8.3. 在ANSI模式下运行MySQL 1.8.4. MySQL对标准SQL的扩展 1.8.5. MySQL与标准SQL的...
MySQL 5.7中文文档是针对这个特定数据库版本的详细技术参考,包含了丰富的信息,适合开发者、管理员和学习者使用。文档的翻译质量被描述为“还行”,尽管资源可能不易找到,但提供了全面的指南。 该文档涵盖了从...
mysql5.7安装教程+mysql5.7镜像安装+mysql学习+mysql5.7镜像包 mysql5.7安装教程+mysql5.7镜像安装+mysql学习+mysql5.7镜像包 mysql5.7安装教程+mysql5.7镜像安装+mysql学习+mysql5.7镜像包 mysql5.7安装教程+mysql...
MySQL是世界上最受欢迎的关系型数据库管理系统之一,其驱动程序是Java应用程序连接MySQL数据库的关键组件。本文将详细介绍MySQL 8和MySQL 5驱动的区别以及与JDK版本的兼容性问题。 首先,MySQL 8和5的主要区别在于...
《涂抹MySQL:跟着三思一步一步学MySQL》是一本旨在帮助初学者和中级用户深入理解MySQL数据库系统的教程。这本书通过清晰的解释和实例,逐步引导读者掌握MySQL的核心概念和技术。MySQL是一种广泛使用的开源关系型...
例如,`mysql_init()`用于初始化一个MySQL连接结构,`mysql_real_connect()`用于建立实际的数据库连接,`mysql_query()`用于执行SQL查询,而`mysql_store_result()`和`mysql_use_result()`则用于处理查询结果。...
MySQL驱动是Java应用程序连接到MySQL数据库的关键组件,它允许程序通过Java Database Connectivity (JDBC) API与MySQL服务器进行通信。本压缩包包含了两个适用于MySQL 5.7版本的驱动文件:`mysql-connector-java-...