1: mysql性能显著的部分原因是他允许多个并发数据库访问的完全多线程体系结构。 他是mysql引擎的核心,允许多个客户同时读取同一个数据库。
事务,存储过程都是可选的;
查询高速缓冲存储器: 存储常用查询结果并把这些存储的数据返回给调用者。
多用户支持:完全多用户的系统,多个用户可以同时访问和使用一个mysql数据库。
2: 关于数值类型:
mysql> create table data (price float(5,2));
Query OK, 0 rows affected (0.11 sec)
mysql> insert into data values(-12345.678);
Query OK, 1 row affected, 1 warning (0.07 sec)
mysql> select price from data;
+---------+
| price |
+---------+
| -999.99 |
+---------+
1 row in set (0.03 sec)
mysql> create table data1 (radius decimal(6,3));
Query OK, 0 rows affected (0.06 sec)
mysql> insert into data1 values(1324123413241324);
Query OK, 1 row affected, 1 warning (0.00 sec)
mysql> select radius from data1;
+---------+
| radius |
+---------+
| 1.000 |
| 999.999 |
+---------+
2 rows in set (0.00 sec)
mysql在内部把decimal数据类型存储为字符串,更精确的保留他们的值。
连接:
交叉连接: select * from color , attribute; select countryName , stateName from country, state; select countryName , stateName from country cross join state; cross join
内连接: 相等连接 select countryName, stateName from country , state where state.cid = country.id select countryName, stateName from country inner join state where state.cid = country.id inner join
外连接:
使用错误日志排错:
、/var/log/mysql.err
在mysql数据库中:
user表: 用户权限;
db表以及host表: eg: wangshuai 能够从host表中记录的任何主机连接到mysql服务器,但是所享有的权限将根据使用联机的主机不同有所不同
日志记录:
错误日志: mysqld_safe --log-error
性能优化: 索引:
优化多表查询: 如果发现在自己的mysql服务器上的负载平均值到达了无法接受的高水平,就应该检验应用程序代码,并试着重写作为连接和连接序列的子查询。
查询嵌套效率比较低, 并列查询不错,划分成多个查询并使用服务器端mysql变脸进行换个链接的方法进行相同处理。
使用临时表: 只准对单一的mysql会话过程存在,当使用这些表的客户及关闭了与mysql服务器的连接时,它将自动删除。 用于短暂的基于会话的数据和计算。 暂存一些数据。
临时表保存在内存中,
事务性方法的长处: 在食物的过程中,页级和行级的锁定允许其他客户使用相同的数据。