iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >浅说MySQL优化方法
  • 920
分享到

浅说MySQL优化方法

浅说MySQL优化方法 2016-12-06 23:12:30 920人浏览 才女
摘要

在数据库的优化上我们有两个方面,一方面是安全,另一方面则是性能.         安全 ,就是要保证数据的可持续性;         性能,则说的就是数据的高性能访问; 2.优化方法         1)选取最适用的字段属性   

浅说MySQL优化方法

数据库优化上我们有两个方面,一方面是安全,另一方面则是性能.

        安全 ,就是要保证数据的可持续性;

        性能,则说的就是数据的高性能访问;

2.优化方法

        1)选取最适用的字段属性

            一般来说,数据库中的表越小,查询执行的效率越快,因此我们可以在创建表的时候将字段竟可能设定的小一点,这样增加了数据库的空间.

            另一个方法则是在可能的情况下,尽量把字段设置为非空,这样查询的时候就不用去比较NULL值,从而提升查询速度

        2)使用连接查询代替子查询

            使用子查询的话数据库需要在内存中先创建出临时表,然后再把临时表用在另一个查询上,子查询可以一次性完成很多逻辑上多个步骤才能完成的sql操作,这样查询速度不是很快,而采用连接查询的话,Mysql不需要在内存中创建临时表来完成这个逻辑上的需要两个步骤的查询工作.

        3)使用联合来代替手动创建的临时表

            使用UNION查询,可以把 需要使用临时表的两条或更多的 SELECT 查询合并的一个查询中。在客户端的查询会话结束的时候,临时表会被自动删除,从而保证数据库整齐、高效。使用 UNioN 来创建查询的时候,我们只需要用 UNION作为关键字把多个 SELECT 语句连接起来就可以了,要注意的是所有 SELECT 语句中的字段数目要想同 .

SELECT * FROM t_address UNION SELECT * FROM t_area;

        4)事务

            当这个语句块中的某一条语句运行出错的时候,整个语句块的操作就会变得不确定起来。设想一下,要把某个数据同时插入两个相关联的表中,可能会出现这样的情况:第一个表中成功更新后,数据库突然出现意外状况,造成第二个表中的操作没有完成,这样,就会造成数据的不完整,甚至会破坏数据库中的数据。要避免这种情况,就应该使用事务,它的作用是:要么语句块中每条语句都操作成功,要么都失败。换句话说,就是可以保持数据库中数据的一致性和完整性。事物以BEGIN 关键字开始,COMMIT关键字结束。在这之间的一条SQL操作失败,那么,ROLLBACK命令就可以把数据库恢复到BEGIN开始之前的状态。 
BEGIN; 
INSERT INTO salesinfo SET CustomerID=14; 
UPDATE inventory SET Quantity=11 
WHERE item="book"; 
COMMIT; 
事务的另一个重要作用是当多个用户同时使用相同的数据源时,它可以利用定数据库的方法来为用户提供一种安全的访问方式,这样可以保证用户的操作不被其它的用户所干扰。 

        5)使用外键

            外键可以用来维护两表之间的一致性,通过设置外键和其他表建立关联关系,即保证数据的关联性,如果要在 mysql 中使用外键,一定要记住在创建表的时候将表的类型定义为事务安全表 InnoDB类型。该类型不是 MySQL 表的默认类型。定义的方法是在 CREATE TABLE 语句中加上 TYPE=INNODB。

        6)使用索引

        索引是提高数据库性能的常用方法,它可以令数据库服务器以比没有索引快得多的速度检索特定的行,尤其是在查询语句当中包含有MAX(), MIN()和ORDERBY这些命令的时候,性能提高更为明显。 一般说来,索引应建立在那些将用于JOIN, WHERE判断和ORDER BY排序的字段上。尽量不要对数据库中某个含有大量重复的值的字段建立索引。

        7)优化查询语句

        绝大多数的情况下,使用索引可以提高查询的速度,但是如果SQL语句使用不恰当的话,索引将无法更好的发挥它的作用.

            应该注意一下几点 : 

                1. 最好是在相同的类型字段之间进行比较

             如INT类型建议不要和BGINT类型的比较,但也有特殊情况,比如,char和varchar类型字段大小相等时也可以将它们进行比较

                2. 在建有索引的字段上尽量不要使用函数进行操作

                3.避免在查询中让数据库进行自动类型转换,这样也会让索引变得不起作用

                 4. 对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。

                   5. 应尽量避免在 where 子句中使用!=或<>操作符,否则将引擎放弃使用索引而进行全表扫描。

                    6. 应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描

                    7. 应尽量避免在 where 子句中使用 or 来连接条件,否则将导致引擎放弃使用索引而进行全表扫描

                    8. 应尽量避免在where子句中对字段进行函数操作,这将导致引擎放弃使用索引而进行全表扫描

这是小喵这次的总结,你Get到啦吗?

(^_^)~喵~!!

 

您可能感兴趣的文档:

--结束END--

本文标题: 浅说MySQL优化方法

本文链接: https://www.lsjlt.com/news/5311.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • oracle怎么查询当前用户所有的表
    要查询当前用户拥有的所有表,可以使用以下 sql 命令:select * from user_tables; 如何查询当前用户拥有的所有表 要查询当前用户拥有的所有表,可以使...
    99+
    2024-05-15
    oracle
  • oracle怎么备份表中数据
    oracle 表数据备份的方法包括:导出数据 (exp):将表数据导出到外部文件。导入数据 (imp):将导出文件中的数据导入表中。用户管理的备份 (umr):允许用户控制备份和恢复过程...
    99+
    2024-05-15
    oracle
  • oracle怎么做到数据实时备份
    oracle 实时备份通过持续保持数据库和事务日志的副本来实现数据保护,提供快速恢复。实现机制主要包括归档重做日志和 asm 卷管理系统。它最小化数据丢失、加快恢复时间、消除手动备份任务...
    99+
    2024-05-15
    oracle 数据丢失
  • oracle怎么查询所有的表空间
    要查询 oracle 中的所有表空间,可以使用 sql 语句 "select tablespace_name from dba_tablespaces",其中 dba_tabl...
    99+
    2024-05-15
    oracle
  • oracle怎么创建新用户并赋予权限设置
    答案:要创建 oracle 新用户,请执行以下步骤:以具有 create user 权限的用户身份登录;在 sql*plus 窗口中输入 create user identified ...
    99+
    2024-05-15
    oracle
  • oracle怎么建立新用户
    在 oracle 数据库中创建用户的方法:使用 sql*plus 连接数据库;使用 create user 语法创建新用户;根据用户需要授予权限;注销并重新登录以使更改生效。 如何在 ...
    99+
    2024-05-15
    oracle
  • oracle怎么创建新用户并赋予权限密码
    本教程详细介绍了如何使用 oracle 创建一个新用户并授予其权限:创建新用户并设置密码。授予对特定表的读写权限。授予创建序列的权限。根据需要授予其他权限。 如何使用 Oracle 创...
    99+
    2024-05-15
    oracle
  • oracle怎么查询时间段内的数据记录表
    在 oracle 数据库中查询指定时间段内的数据记录表,可以使用 between 操作符,用于比较日期或时间的范围。语法:select * from table_name wh...
    99+
    2024-05-15
    oracle
  • oracle怎么查看表的分区
    问题:如何查看 oracle 表的分区?步骤:查询数据字典视图 all_tab_partitions,指定表名。结果显示分区名称、上边界值和下边界值。 如何查看 Oracle 表的分区...
    99+
    2024-05-15
    oracle
  • oracle怎么导入dump文件
    要导入 dump 文件,请先停止 oracle 服务,然后使用 impdp 命令。步骤包括:停止 oracle 数据库服务。导航到 oracle 数据泵工具目录。使用 impdp 命令导...
    99+
    2024-05-15
    oracle
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作