mysql 心得

1.我用的软件为 mysql5.7 和一个开发的mysql query browser,很好用,但是,对于较大的数据,该browser很容易崩溃,no responding.

   所以,这个时候,我常常选择mysql cmd。很nice。cmd中sql语句必须以;结尾。

2.设备不能用,登不进去,往往要查看my.ini文件。然后从电脑上的services.msc中看一下mysql服务启动了没。

3.多表查询,用inner join 其实和where差不多,都是笛卡尔乘积。两个表都特别大,查起来速度真的特别慢。

自己实习时做的一个有关数据库的操作。电脑用cmd跑了将近12个小时才好。

心得,在建表时,一定要考虑好结构等等。数据库也是一门艺术。

4.在使用browser时,可以事先把sql语句写成一个script ,后缀为.sql  在browser 中打开即可。必须声明哪个数据库。use 'databasename'

5.随时更新一些语法吧。

 A)查找数目

     select count(*) from table where ...                      其中,表可以用 db.tb 来表示。

 B)LIKE 很常用。对于字符串

     select...............................where 列 like ("% a % "  )

 C) 多表查询 

      select i.id,t.inchina 

  from test t,ip_data i

      where t.id=i.id

      group by i.inchina;

      select i.id,t.inchina

      form test t

      left join /inner join/right join

      on   t.id=i.id

  D)结果导出txt文件中

     select .......... into outfile "c:/A.txt"; 注意,该地址下的文件必须没有A.txt 否则报错

     再注意:今天导出,发现自己在windows系统该文件路径下看不到txt .再来一次,发现error,have existed.文件夹内也显示隐藏文件啊,怎么回事呢?

                后来发现自己傻逼了。在windows系统下,路径用来表示,但是在mysql默认为转义符。这也就是我在error中看到的 c:a.txt已存在(txt名称中没有                   )的原因。路径要用/符号

   E)复制表

     1 create table a like users;         //复制表结构  a为空表。

     2  create table b select * from users  //数据也复制

   F) 清空表数据

       TRUNCATE TABLE '表名'

6.数据库优化思路 optimize

   当数据量很大的时候,运行速度慢,需要优化

   way 1 。多台机器并行,速度几乎成倍提升,此时速度受 数据库服务器的限制,同时做出任务分配的机制。

   way 2 。分表。将一张大数据的表按一定方式分成几个小表存储,在小表中进行查询等操作。最后可以汇总结果

   way 3 。 索引。INDEX 不太懂 以后补充。mark

  

原文地址:https://www.cnblogs.com/karcylee/p/3432765.html