要优化mysql首先要知道什么地方需要优化,然后才能针对具体问题进行优化?难道不是吗?什么分库分表,建立索引....摆脱不要那么官方好吗?
1.学会和培养使用mysql的查看命令的使用习惯
什么你忘记如何创建表的语句了??
mysql> ? table Many help items for your request exist. To make a more specific request, please type 'help <item>', where <item> is one of the following topics: ALTER TABLE ANALYZE TABLE CHECK TABLE CHECKSUM TABLE CREATE TABLE DROP TABLE OPTIMIZE TABLE RENAME TABLE REPAIR TABLE SHOW SHOW CREATE TABLE SHOW TABLE STATUS SPATIAL TRUNCATE TABLE
mysql> ? SHOW CREATE TABLE Name: 'SHOW CREATE TABLE' Description: Syntax: SHOW CREATE TABLE tbl_name Shows the CREATE TABLE statement that creates the named table. To use this statement, you must have some privilege for the table. This statement also works with views. SHOW CREATE TABLE quotes table and column names according to the value of the sql_quote_show_create option. See http://dev.mysql.com/doc/refman/5.5/en/server-system-variables.html. URL: http://dev.mysql.com/doc/refman/5.5/en/show-create-table.html Examples: mysql> SHOW CREATE TABLE t\G *************************** 1. row *************************** Table: t Create Table: CREATE TABLE t ( id INT(11) default NULL auto_increment, s char(60) default NULL, PRIMARY KEY (id) ) ENGINE=MyISAM
这回你知道了吧!!!
另外 ? contents会告诉你你可以查看那些命令
mysql> ? contents; You asked for help about help category: "Contents" For more information, type 'help <item>', where <item> is one of the following categories: Account Management Administration Compound Statements Data Definition Data Manipulation Data Types Functions Functions and Modifiers for Use with GROUP BY Geographic Features Help Metadata Language Structure Plugins Procedures Storage Engines Table Maintenance Transactions User-Defined Functions Utility
上面这个查看帮助文档的使用,可以帮助你在查找需要优化的sql语句。
2.mysql的慢查询日志
mysql> show global variables like 'log_%'; +---------------------------------+--------------------------+ | Variable_name | Value | +---------------------------------+--------------------------+ | log_bin | OFF | | log_bin_trust_function_creators | OFF | | log_error | /var/log/mysql/error.log | | log_output | FILE | | log_queries_not_using_indexes | OFF | | log_slave_updates | OFF | | log_slow_queries | OFF | | log_warnings | 1 | +---------------------------------+--------------------------+ 8 rows in set (0.01 sec) mysql> show session variables like 'log_%'; +---------------------------------+--------------------------+ | Variable_name | Value | +---------------------------------+--------------------------+ | log_bin | OFF | | log_bin_trust_function_creators | OFF | | log_error | /var/log/mysql/error.log | | log_output | FILE | | log_queries_not_using_indexes | OFF | | log_slave_updates | OFF | | log_slow_queries | OFF | | log_warnings | 1 | +---------------------------------+--------------------------+ 8 rows in set (0.00 sec)
第一个是mysql的全局配置,第二个是mysql的本次链接的配置。这几个日志介绍。默认mysql是没有开启慢查询日志的。需要将其设置为开启,并设置慢查询的配置。
3.通过mysql的慢查询日志很容易就能够知道具体那个sql语句出现了问题。定位到问题,接着就是分析这个sql语句的执行情况。使用的表是否有索引,索引是否使用了,是否走全表扫描了,是否使用了临时表.....
mysql> explain select * from test\G *************************** 1. row *************************** id: 1 select_type: SIMPLE table: test type: ALL possible_keys: NULL key: NULL key_len: NULL ref: NULL rows: 2 Extra: 1 row in set (0.00 sec)
使用explain或desc查看sql的执行信息,\G是使这些信息以垂直的方式显示。其中列名及其值代表的意义。
4.针对3的分析结果进行相应的优化。
相关推荐
本资料集旨在帮助读者从零开始,逐步掌握MySQL实战优化技巧,成为一名真正的高手。 首先,让我们从基础开始。"每一行的实际数据在磁盘上是如何存储的.pdf"这一章节将详细介绍MySQL中的数据存储结构,包括InnoDB存储...
- **SQL注入前奏曲**:熟悉SQL语法,理解SQL注入的基本原理。 - **SQL注入实战**:利用上述工具进行实践操作,寻找并利用网站中存在的SQL注入漏洞。 **4.2 实际案例分析** - **ASP + SQL Server 网站注入**:分析...
首先,文章提到需要从官方网站下载MySQL 8.0.11的安装包,这一步骤对于任何软件安装都是必要的前奏。下载时,网站可能还会提供一些配置参数,例如`sql_mode`,这些参数会决定数据库的行为模式,如`ONLY_FULL_GROUP_...
在这个场景中,我们关注的是使用Java Server Pages (JSP)技术连接到MySQL数据库的过程。JSP是一种动态网页开发技术,允许我们在HTML页面中嵌入Java代码,从而实现服务器端的数据处理。 首先,我们需要引入必要的...
1. **静态初始化块**:在这里,`Class.forName()`方法被用来加载数据库驱动,这是建立数据库连接的前奏。在这个例子中,它加载的是MySQL的JDBC驱动`com.mysql.jdbc.Driver`。这一步是必要的,因为JDBC驱动必须在连接...
前奏 为了能操作数据库, 首先我们要有一个数据库, 所以要首先安装Mysql, 然后创建一个测试数据库python_test用以后面的测试使用 CREATE DATABASE `python_test` CHARSET UTF8 导入数据库模块 import MySQLdb ...
在MySQL中,每条数据记录实际上都包含了两个隐藏字段:`trx_id`和`roll_pointer`。`trx_id`记录了最近一次更新该数据记录的事务ID,而`roll_pointer`则是一个指向undo log记录的指针,这个记录包含了该数据记录的前...
第1章 JSP开发前奏 1.1 JSP基于服务器模式的运行原理 1.1.1 JSP原理 1.1.2 为什么使用JSP 1.2 JSP轻量级开发和运行环境简介 1.2.1 JSP运行最佳环境Tomcat+MySQL 1.2.2 高效开发JSP的最佳搭配工具...
第1章VisualC++数据库开发前奏 1.1VisualC++6.0开发工具简介 1.2学好VisualC++6.0的建议 1.3常见数据库简介 1.4结构化查询语言(SQL)简介 1.5数据库开发常用技巧 1.6本章小结 第2章数据库访问技术及模块封装...
第1章VisualC++数据库开发前奏 1.1VisualC++6.0开发工具简介 1.2学好VisualC++6.0的建议 1.3常见数据库简介 1.4结构化查询语言(SQL)简介 1.5数据库开发常用技巧 1.6本章小结 第2章数据库访问技术及模块封装...
9. **数据库基础**:MySQL或其他关系型数据库的基本操作,如SQL查询语句、连接池的使用等,是Web开发中的基础技能。 10. **工具和框架介绍**:可能简要介绍Maven或Gradle等构建工具,以及Spring Boot、MyBatis等...
- SQL数据库(MySQL、SQLite等):适合结构化数据。 - NoSQL数据库(MongoDB等):适合非结构化数据。 3. **云存储服务**:如阿里云OSS、腾讯云COS等,适合大数据量且需远程访问的情况。 #### 五、爬虫进阶 1. *...