当前位置 博文首页 > 文章内容

    mysql 下载,常用的mysql引擎有myisam与innodb

    作者:Tan09wlll 栏目:Tan的日记 时间:2021-02-28 18:03:53

    本站于2023年9月4日。收到“大连君*****咨询有限公司”通知
    说我们IIS7站长博客,有一篇博文用了他们的图片。
    要求我们给他们一张图片6000元。要不然法院告我们

    为避免不必要的麻烦,IIS7站长博客,全站内容图片下架、并积极应诉
    博文内容全部不再显示,请需要相关资讯的站长朋友到必应搜索。谢谢!

    另祝:版权碰瓷诈骗团伙,早日弃暗投明。

    相关新闻:借版权之名、行诈骗之实,周某因犯诈骗罪被判处有期徒刑十一年六个月

    叹!百花齐放的时代,渐行渐远!



         MySQL是一个关系型数据库管理系统,且也是最流行的关系型数据库管理系统之一,在日常开发 WEB 应用方面,MySQL是最好的数据管理应用软件之一。但是当我们的数据库存储的数据量庞大时,会造成应用程序读取数据库数据缓慢的现象,这大大降低了用户体验。接下来,笔者将带领大家看看如何优化我们的数据库,提高我们数据库的数据读取效率。

         1、给自己数据表添加索引

         数据表中索引相当于我们书本中的目录索引,每一条数据都对应着一个索引值。如果我们没有给数据表添加索引时,在大数据量下(百万条数据或者更多)精确查找某一条数据是通过一条一条来查找的,这样很耗服务器的cpu查找速度也慢;通过添加索引的后可以大大提高数据查找的速率。

         创建普通索引:

         CREATE INDEX 索引名 ON 表名 (列名)

         创建唯一索引,它与上面的普通索引唯一不同的是,该索引不能重复也不能为空。

         CREATE UNIQUE INDEX 索引名 ON 表名 (列名)

         2、SELECT语句的优化

         初学者使用Mysql时很喜欢使用select * from 表名这样的语句,这样的语句增加很多不必要的服务器消耗(比如cpu的计算消耗、数据读取i/o的消耗),所以我们在使用select语句时根据自己的业务需求添加明确的查询字段,不查询额外的无意义的字段。除此之外我们查询数据时应该添加上查询条件,避免大面积对数据进行查询。

         例如:select name,age,email,phone from users where id = 1;

         3、避免使用外键

         在设计表的时候使用外键进行约束两个表之间的数据关系,这样的设计给数据库的操作(增删查改)会带来压力的。比如我们在约束学生表和教师表之间的关系时可以使用额外的字段来约束两者之间的关系,可以给学生添加一个字段(teacher_id)来对两者之间的关系的约束。

         4、当我们明确只需要一条数据时,可以使用limit 1.

         如:select name,age,email,phone from users where id = 1 limit 1;

         5、in函数的值不能过多

         在select语句使用in函数时,in函数里面的参数不能过多,否则也会造成慢查询,我们可以用between语句或者左右连接查询来代替。

         6、 ORDER BY 排序的问题

         ORDER BY 查询数据排序时假如排序时的字段没有索引字段在里面,不要进行排序,因为这样也会造成cpu的额外消耗和慢查询。

         7、where语句中null语句判断的问题

         我们要避免在where语句中对字段进行 null 值判断,如果对null进行判断会导致mysql引擎放弃已经建立的索引查找方式而进行全表扫描,进行全表扫描在亿万条数据时可能导致服务崩溃。

         8、union all 和union的使用问题

         union all 和union之间的区别在于后者会将两表之间查询出来的数据进行唯一性的过滤,这样也会造成cpu的额外消耗,如果两个表之间的数据无重复的情况下,我们尽量使用union all 代替union ,可以增加查询效率。

         9、查询时分页的问题

         在大数据量下使用分页查询也会导致查询速度越来越慢,比如:

         select name,phone from users limit 999999,20;

         假如上面的语句时根据自增长的id进行分页的,我们可以把上述查询语句修改为:

         select name,phone from users where id > 999999 limit 20;

         10、关于模糊查询like的优化

         我们在使用模糊查询时,尽量避免在查询字段前使用%,比如 like“%name",这种查询方式也会导致mysql引擎放弃已经建立的索引查找方式而进行全表扫描,降低查询效率。

         11、避免where语句中表达式的问题

         在无特殊业务需求的情况下,我们应该避免在where语句使用表达式来对数据进行查询。

         12、根据的业务选择适合的数据表引擎,常用的mysql引擎有myisam与innodb。如果你的表更新的少读取数据比较多可选用myisam作为该表引擎,否则则选用innodb引擎。

         MySQL中myisam与innodb的区别如下:

         关于mysql优化的方法笔者总结上面的12条,当然笔者的经验不够,更多的优化方式等待着我们一起探讨,如果您觉得这篇文章对您有帮助,请您多多关注笔者和分享,笔者会不断分享一些计算机方面的使用技巧