Mysql的第一天

来源:互联网 发布:jqplot 动态数据 编辑:程序博客网 时间:2024/06/07 14:28

       mysql是一个关系型数据库,也就是行与列组成的数据库,一列就是一个属性,一行就是一条记录

       mysql长用的引擎有2种:myisam和innodb,从5.5.5开始,Mysql的默认引擎就是innodb,

                     innodb:支持事务,外键,行级锁,速度慢,锁粒度小,冲突小,并发度高

                     myisam:表级锁,速度快,不会出现死锁,冲突大,并发度低

           MyISAM:希望以最节约空间和时间或者响应速度快的方式来管理数据库表。

          InnoDB:应用程序需要用到事物,使用外键或者需要更高的安全性,以及需要允许很多用户同时修改某个数据库表里的数据


          Mysql 配置文件  /etc/my.cnf

      char和varchar的区别

        ①char是不可变长度,varchar是可变长度,innodb一般推荐用varchar,

                      char:不管你数据是多大,多会用固定长度,速度快(存储很短的信息,固定长度的,十分频繁改变的column)

                      varchar:他会先计算出要使用多大长度,然后后加上1-2个byte字节来存储位置,速度慢

      text和blob区别:

               text对于存字符数据(比如我们存图片,会把图片先存到服务器,然后在image标签中添加图片路径),一般是用这种方法

              blog存二进制  (会把图片转为二进制全部存入数据库)


    行级锁和表级锁还有页级锁

               行级锁:速度慢,锁的粒度小,会出现死锁,并发度高

              表级锁:速度快,锁的粒度大,不糊出现死锁,并发度低,

   

      浮点数和定点数:

                  浮点数:float,double

                  定点数: decimal numbered

                对于特别精确的不要用浮点数,不要用浮点数进行比较


   二,索引

         索引的好处,就是查询的速度快

          怎样运用索引呢?

                       ①搜索索引最好放到,where字句后被搜索

                       ②使用唯一索引,最好放到唯一的列

                       ③不要过多的使用索引,因为每个索引要占据一定的磁盘空间,降低写的能力

                       ④。索引可用于“ <”、“ < = ”、“ = ”、“ > =”、“ >”和 BETWEEN,In 运算,和部分like

           

                1.单列索引

             create index idx_name on tb_student(name);              索引名        表名   字段名

                 2.联合索引

             create index idx_name_age on tb_student(name,age);            #索引中先根据name排序,name相同的情况下根据age排序

         

    

     

0 0